:root{--bg:#eff3f9;--bg-deep:#e2e9f2;--card:#fff;--ink:#151a22;--fog:#5f6b7d;--faint:#9aa6b6;--stroke:#151a2212;--stroke-strong:#151a2221;--accent:#0a84ff;--accent-soft:#e4effe;--accent-line:#0a84ff61;--ok:#1b7f52;--warn:#b26a00;--shadow-tint:#15284a1c;--s1:0 1px 3px #15284a14;--s2:0 8px 24px -6px #15284a21;--s3:0 20px 50px -12px #15284a2e;--ease:cubic-bezier(.32,.72,0,1);--spring:cubic-bezier(.34,1.56,.64,1);--key-face:linear-gradient(180deg,#fff 0%,#fbfcfe 45%,#eff3f9 100%);--key-face-hi:linear-gradient(180deg,#fff 0%,#fff 45%,#f5f8fc 100%);--key-dark:linear-gradient(180deg,#2c3542 0%,#1e2530 55%,#151a22 100%);--key-rim:#15223821;--key-rim-dark:#0f131a;--key-lip:#fff;--key-cast:#15284a29;--travel:3px;--down:70ms cubic-bezier(.2,0,0,1);--up:.42s cubic-bezier(.34,1.56,.64,1);--sh-up:0 2px 0 0 var(--key-rim), 0 4px 8px -2px var(--key-cast), inset 0 1px 0 0 var(--key-lip), inset 0 -1px 2px 0 #15284a0d;--sh-down:0 0 0 0 var(--key-rim), 0 1px 2px 0 #15284a1a, inset 0 1px 3px 0 #15284a29, inset 0 -1px 0 0 #fff9;--sh-latch:0 0 0 0 var(--key-rim-dark), 0 1px 3px 0 #15284a4d, inset 0 1px 0 0 #ffffff24, inset 0 3px 6px -2px #00000080;--sh-well:inset 0 2px 4px 0 #15284a21, inset 0 -1px 0 0 #ffffffe6, 0 1px 0 0 #ffffffb3}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;width:100%;max-width:100%;font-family:Space Grotesk,system-ui,sans-serif;overflow-x:hidden}.shell,.main,.view,.content,.detail-grid,.detail-grid>*,.studio-grid,.studio-grid>*,.proj-row,.proj-row>*,.ib-list,.ib-list>*,.inbox,.inbox>*,.dgrid,.dgrid>*,.hdr,.hdr>*,.detail-hero,.sg-rail,.sg-pal,.sg-canvas,.media-wrap,.panel,.tl,.tl-item,.tl-card,.tl-head{min-width:0;max-width:100%}.chips,.rail,.pal-rail,.seg{width:100%;max-width:100%}.seg{width:fit-content}.syne{letter-spacing:-.02em;font-family:Syne,sans-serif}.mono{font-family:DM Mono,monospace}button{color:inherit;cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea{font-family:inherit}.shell{width:100%;min-height:100dvh;display:flex}.sidebar{display:none}.main{flex:1;min-width:0;position:relative;overflow-x:hidden}.view{min-height:100dvh;padding-bottom:118px}@media (width>=900px){.sidebar{border-right:1px solid var(--stroke);flex-direction:column;flex-shrink:0;width:228px;height:100dvh;padding:28px 18px;display:flex;position:sticky;top:0}.side-nav{flex-direction:column;gap:4px;margin-top:34px;display:flex}.snav{color:var(--fog);transition:all .3s var(--ease);border-radius:14px;align-items:center;gap:11px;padding:11px 14px;font-size:14px;display:flex;position:relative;overflow:hidden}.snav.on{background:var(--card);color:var(--ink);box-shadow:var(--s1);font-weight:500}.snav:hover:not(.on){background:#ffffff8c;transform:translate(2px)}.tabbar{display:none!important}.content{max-width:1120px;margin:0 auto;padding:0 40px}.view{padding-bottom:60px}}@media (width<=899px){.content{padding:0 16px}}.tabbar{left:12px;right:12px;bottom:max(env(safe-area-inset-bottom),12px);z-index:120;border:1px solid var(--stroke);-webkit-backdrop-filter:blur(30px)saturate(170%);box-shadow:var(--s3);background:#fafcffdb;border-radius:26px;justify-content:space-between;align-items:center;padding:6px;display:flex;position:fixed}.tab{color:var(--faint);transition:color .3s var(--ease);flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 0;display:flex;position:relative}.tab.on{color:var(--ink)}.tab svg{transition:transform .4s var(--spring)}.tab.on svg{transform:translateY(-1px)scale(1.08)}.tab-label{letter-spacing:.14em;text-transform:uppercase;font-family:DM Mono;font-size:8px}.tab:after{content:"";background:var(--ink);opacity:0;width:3px;height:3px;transition:all .35s var(--spring);border-radius:50%;position:absolute;bottom:2px;transform:scale(0)}.tab.on:after{opacity:1;transform:scale(1)}.fab{background:var(--ink);color:#fff;width:48px;height:48px;transition:transform .35s var(--spring);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0 3px;display:flex;box-shadow:0 10px 26px #15284a4d}.fab:active{transform:scale(.9)rotate(90deg)}.press{transition:transform .3s var(--spring);cursor:pointer}.press:active{transform:scale(.965)}.eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--faint);font-family:DM Mono;font-size:9.5px}.glassbtn{border:1px solid var(--stroke);-webkit-backdrop-filter:blur(20px);box-shadow:var(--s1);transition:transform .3s var(--spring),box-shadow .3s ease;background:#ffffffb8;border-radius:14px;justify-content:center;align-items:center;display:flex}.glassbtn:hover{box-shadow:var(--s2)}.glassbtn:active{transform:scale(.92)}.chips{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:7px;max-width:100%;padding:4px 0;display:flex;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{color:var(--fog);border:1px solid var(--stroke-strong);transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .3s var(--spring);background:0 0;border-radius:999px;flex-shrink:0;padding:8px 14px;font-family:DM Mono;font-size:10.5px}.chip:active{transform:scale(.94)}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.seg{background:var(--bg-deep);border:1px solid var(--stroke);scrollbar-width:none;border-radius:999px;gap:4px;width:fit-content;max-width:100%;padding:4px;display:flex;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg button{letter-spacing:.08em;color:var(--fog);white-space:nowrap;transition:all .32s var(--ease);border-radius:999px;padding:8px 14px;font-family:DM Mono;font-size:10px}.seg button.on{background:var(--ink);color:#fff;box-shadow:var(--s1)}.hdr{padding:max(env(safe-area-inset-top),18px) 0 14px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;width:100%;display:flex}.hdr .syne{overflow-wrap:anywhere}@media (width>=900px){.hdr{padding-top:42px}}@media (width<=899px){.hdr .seg{justify-content:flex-start;width:100%}.hdr .seg button{text-align:center;flex:1;padding:8px 6px;font-size:9.5px}}@keyframes riseIn{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:none}}.rise{animation:riseIn .6s var(--ease) both}.reveal{opacity:0;transition:opacity .7s var(--ease),transform .7s var(--ease);transform:translateY(20px)scale(.98)}.reveal.in{opacity:1;transform:none}.gen-btn{background:var(--ink);color:#fff;width:100%;transition:transform .35s var(--spring),box-shadow .3s ease;border-radius:16px;justify-content:space-between;align-items:center;padding:14px;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 28px #15284a3d}.primary-btn{background:var(--ink);color:#fff;width:100%;transition:transform .35s var(--spring);border-radius:14px;margin-top:12px;padding:13px;font-size:13px;font-weight:500}.primary-btn:active{transform:scale(.98)}.panel{background:var(--card);border:1px solid var(--stroke);box-shadow:var(--s1);border-radius:22px}.toast{z-index:600;background:var(--ink);color:#fff;opacity:0;transition:all .45s var(--spring);pointer-events:none;box-shadow:var(--s3);text-align:center;border-radius:999px;max-width:86vw;padding:10px 17px;font-family:DM Mono;font-size:10.5px;position:fixed;bottom:96px;left:50%;transform:translate(-50%)translateY(18px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}@keyframes sheen{0%,62%{background-position:140% 0}92%,to{background-position:-70% 0}}.inbox{background:var(--card);border:1px solid var(--stroke);box-shadow:var(--s1);text-align:left;cursor:pointer;width:100%;transition:transform .35s var(--spring),box-shadow .35s ease;border-radius:20px;align-items:center;gap:12px;margin-bottom:14px;padding:13px 15px;display:flex;position:relative;overflow:hidden}.inbox:hover{box-shadow:var(--s2);transform:translateY(-2px)}.inbox-icon{background:var(--bg-deep);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;display:flex}.inbox-icon span{animation:2.6s ease-in-out infinite bob;display:block}@keyframes bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-2px)rotate(6deg)}}.pulse-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:6px;height:6px;position:relative}.pulse-dot:after{content:"";background:var(--accent);animation:ping 2s var(--ease) infinite;border-radius:50%;position:absolute;inset:0}@keyframes ping{0%{opacity:.6;transform:scale(1)}70%,to{opacity:0;transform:scale(3.2)}}.inbox-thumbs{flex-shrink:0;display:flex}.inbox-thumbs img{object-fit:cover;background:var(--bg-deep);border:2px solid var(--card);width:30px;height:30px;box-shadow:var(--s1);border-radius:10px;margin-left:-9px}.inbox-thumbs img:first-child{margin-left:0}.ib-list{gap:12px;display:grid}@media (width>=900px){.ib-list{grid-template-columns:1fr 1fr}}.ib-card{text-align:left;cursor:pointer;width:100%;transition:transform .35s var(--spring),box-shadow .35s ease;align-items:center;gap:13px;padding:11px;display:flex}.ib-card:hover{box-shadow:var(--s2);transform:translateY(-2px)}.ib-card img{object-fit:cover;background:var(--bg-deep);border-radius:14px;flex-shrink:0;width:62px;height:62px}.ib-card .ib-txt{flex:1;min-width:0}.ib-src{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-family:DM Mono;font-size:9px;overflow:hidden}.tri-hero{object-fit:cover;background:var(--bg-deep);border-radius:18px;width:100%;height:150px}.tri-designs{flex-direction:column;gap:6px;max-height:168px;margin-top:6px;display:flex;overflow-y:auto}.tri-design{border:1px solid var(--stroke-strong);background:var(--bg);cursor:pointer;text-align:left;border-radius:14px;align-items:center;gap:10px;width:100%;padding:10px 12px;transition:border-color .25s,background .25s;display:flex}.tri-design.on{border-color:var(--ink);background:var(--bg-deep)}.tri-design .t{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;font-weight:500;overflow:hidden}.tri-check{color:#fff;background:var(--ink);opacity:0;width:16px;height:16px;transition:all .25s var(--spring);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;display:flex;transform:scale(.6)}.tri-design.on .tri-check{opacity:1;transform:none}.proj-row{gap:14px;display:grid}@media (width>=900px){.proj-row{grid-template-columns:1fr 1fr}}.proj-card{height:200px;box-shadow:var(--s2);border:1px solid var(--stroke);cursor:pointer;transform-style:preserve-3d;transition:transform .5s var(--ease),box-shadow .4s ease;border-radius:26px;position:relative;overflow:hidden}@media (width>=900px){.proj-card{height:230px}}.proj-card:hover{box-shadow:var(--s3)}.proj-art{transition:transform .8s var(--ease);position:absolute;inset:-4%}.proj-card:hover .proj-art{transform:scale(1.06)}.proj-sheen{pointer-events:none;mix-blend-mode:screen;background:linear-gradient(112deg,#0000 44%,#ffffff29 50%,#0000 56%) 0 0/300% 100%;animation:8s ease-in-out infinite sheen;position:absolute;inset:0}.proj-scrim{background:linear-gradient(#0000 38%,#14100a99);position:absolute;inset:0}.proj-meta{color:#fff;justify-content:space-between;align-items:flex-end;gap:10px;padding:16px 18px;display:flex;position:absolute;bottom:0;left:0;right:0}.count-pill{letter-spacing:.12em;-webkit-backdrop-filter:blur(12px);transition:transform .4s var(--spring);background:#fff3;border:1px solid #ffffff42;border-radius:999px;flex-shrink:0;padding:6px 10px;font-family:DM Mono;font-size:9.5px}.proj-card:hover .count-pill{transform:translateY(-2px)}.dgrid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=900px){.dgrid{grid-template-columns:repeat(4,1fr);gap:16px}}.dcard{background:var(--card);border:1px solid var(--stroke);box-shadow:var(--s1);cursor:pointer;transform-style:preserve-3d;transition:transform .45s var(--ease),box-shadow .4s ease;border-radius:20px;position:relative;overflow:hidden}.dcard:hover{box-shadow:var(--s2)}.dcard .art{height:150px;transition:transform .7s var(--ease);background-position:50%;background-size:cover}@media (width>=900px){.dcard .art{height:170px}}.dcard:hover .art{transform:scale(1.07)}.card-idx{letter-spacing:.1em;color:#ffffffe6;-webkit-backdrop-filter:blur(6px);opacity:0;transition:all .4s var(--spring);background:#120e0a57;border-radius:999px;padding:4px 7px;font-family:DM Mono;font-size:8.5px;position:absolute;top:9px;right:10px;transform:translateY(-4px)}.dcard:hover .card-idx{opacity:1;transform:none}@media (width<=899px){.card-idx{opacity:1;transform:none}}.dcard .label{padding:11px 13px 13px}.dname{font-family:Syne;font-size:13.5px;font-weight:600}.dstatus{letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:5px;margin-top:5px;font-family:DM Mono;font-size:8.5px;display:flex}.dot{border-radius:50%;width:5px;height:5px}.st-final{color:var(--ok)}.st-final .dot{background:var(--ok)}.st-dev{color:var(--warn)}.st-dev .dot{background:var(--warn)}.st-mfg{color:var(--accent)}.st-mfg .dot{background:var(--accent)}.st-arch{color:var(--faint)}.st-arch .dot{background:var(--faint)}.dcard.dcard-new{border:1.5px dashed var(--stroke-strong);box-shadow:none;min-height:170px;color:var(--faint);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:7px;transition:color .3s,border-color .3s;display:flex}.dcard.dcard-new:hover{color:var(--fog);border-color:var(--fog);box-shadow:none}.dcard-new .plus{font-size:22px;font-weight:300;line-height:1}.dcard-new .t{letter-spacing:.12em;text-transform:uppercase;font-family:DM Mono;font-size:9.5px}@media (width>=900px){.dcard.dcard-new{min-height:190px}}.detail-grid{gap:22px;display:grid}@media (width>=900px){.detail-grid{grid-template-columns:5fr 6fr;align-items:start;gap:32px}.detail-hero{position:sticky;top:32px}}.hero-stack{perspective:1400px;width:100%;max-width:100%;margin-top:14px;position:relative}.hero-img{height:min(300px,44dvh);box-shadow:var(--s3);border:1px solid var(--stroke);transform-style:preserve-3d;transition:transform .55s var(--ease);border-radius:26px;width:100%;max-width:100%;position:relative;overflow:hidden}@media (width>=900px){.hero-img{height:440px}}.hero-layer{transition:opacity .6s ease,transform .9s var(--ease);background-position:50%;background-size:cover;position:absolute;inset:0}.hero-layer.out{opacity:0;transform:scale(1.05)}.hero-sheen{pointer-events:none;mix-blend-mode:screen;background:linear-gradient(112deg,#0000 44%,#ffffff24 50%,#0000 56%) 0 0/300% 100%;animation:9s ease-in-out infinite sheen;position:absolute;inset:0}.hero-ghost{background:var(--card);border:1px solid var(--stroke);box-shadow:var(--s1);z-index:-1;transition:transform .6s var(--ease);border-radius:22px;position:absolute;left:6%;right:6%}.hero-ghost.g1{height:40px;top:-8px}.hero-ghost.g2{opacity:.6;height:40px;top:-15px;left:11%;right:11%}.hero-stack:hover .hero-ghost.g1{transform:translateY(-3px)}.hero-stack:hover .hero-ghost.g2{transform:translateY(-6px)}.rail{scrollbar-width:none;scroll-snap-type:x proximity;gap:8px;padding:12px 2px 4px;display:flex;overflow-x:auto}.rail::-webkit-scrollbar{display:none}.rail-item{width:52px;height:52px;box-shadow:var(--s1);scroll-snap-align:center;cursor:pointer;transition:transform .4s var(--spring),border-color .3s ease,box-shadow .3s ease;filter:saturate(.55);opacity:.7;background-position:50%;background-size:cover;border:2px solid #0000;border-radius:14px;flex-shrink:0;position:relative;overflow:hidden}.rail-item:hover{filter:saturate(.9);opacity:1;transform:translateY(-3px)}.rail-item.on{border-color:var(--ink);filter:none;opacity:1;box-shadow:var(--s2);transform:translateY(-4px)scale(1.04)}.rail-item i{background:var(--ink);transform-origin:50%;height:3px;transition:transform .4s var(--spring);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.rail-item.on i{transform:scaleX(1)}.actions{gap:9px;width:100%;margin-top:12px;display:flex}.action{text-align:center;background:var(--card);border:1px solid var(--stroke);min-width:0;box-shadow:var(--s1);transition:transform .35s var(--spring),box-shadow .3s ease;border-radius:16px;flex:1 1 0;padding:12px 8px;position:relative;overflow:hidden}.action:hover{box-shadow:var(--s2);transform:translateY(-2px)}.action:before{content:"";background:var(--ink);opacity:0;transition:opacity .3s;position:absolute;inset:0}.action:active:before{opacity:.04}.a-eyebrow{letter-spacing:.16em;margin-bottom:3px;font-family:DM Mono;font-size:8.5px}.a-t{font-size:12.5px;font-weight:500}.tl{margin-top:12px;padding-left:22px;position:relative}.tl:before{content:"";background:linear-gradient(180deg,var(--stroke-strong),transparent);width:1px;position:absolute;top:10px;bottom:14px;left:4px}.tl-item{margin-bottom:20px;position:relative}.tl-item.gone{display:none}.tl-item:before{content:"";background:var(--accent);width:7px;height:7px;transition:transform .45s var(--spring),box-shadow .3s ease;border-radius:50%;position:absolute;top:6px;left:-21px;box-shadow:0 0 0 4px #0a84ff29}.tl-item:hover:before{transform:scale(1.35);box-shadow:0 0 0 6px #0a84ff38}.tl-head{flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:7px;display:flex}.phase-tag{letter-spacing:.15em;text-transform:uppercase;background:var(--card);border:1px solid var(--stroke);box-shadow:var(--s1);border-radius:8px;padding:5px 8px;font-family:DM Mono;font-size:8.5px}.tl-date{color:var(--faint);font-family:DM Mono;font-size:9.5px}.tl-card{border:1px solid var(--stroke);background:var(--card);box-shadow:var(--s1);transition:transform .4s var(--ease),box-shadow .35s ease;border-radius:18px;overflow:hidden}.tl-card:hover{box-shadow:var(--s2);transform:translateY(-2px)}.tl-media{cursor:pointer;overflow:hidden}.tl-media>div{transition:transform .8s var(--ease);background-position:50%;background-size:cover;height:100%}.tl-card:hover .tl-media>div{transform:scale(1.05)}.tl-cap{color:#3c4757;padding:12px 14px;font-size:12.5px;line-height:1.55}.tl-note{border:1px solid var(--stroke);background:var(--card);box-shadow:var(--s1);color:#3c4757;transition:transform .4s var(--ease),box-shadow .35s ease;border-radius:18px;padding:14px 15px;font-size:12.5px;line-height:1.6}.tl-note:hover{box-shadow:var(--s2);transform:translateY(-2px)}.mood-grid{grid-template-columns:1fr 1fr;gap:2px;display:grid}.mood-grid>div{cursor:pointer;height:88px;transition:transform .5s var(--ease),filter .3s ease;background-position:50%;background-size:cover}.mood-grid>div:hover{filter:brightness(1.06);z-index:2;position:relative;transform:scale(1.04)}.voice{background:var(--card);border:1px solid var(--stroke);box-shadow:var(--s1);transition:transform .4s var(--ease),box-shadow .35s ease;border-radius:18px;align-items:center;gap:12px;padding:12px 14px;display:flex}.voice:hover{box-shadow:var(--s2);transform:translateY(-2px)}.play{background:var(--ink);color:#fff;width:36px;height:36px;transition:transform .35s var(--spring);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.voice:active .play{transform:scale(.9)}.wave{flex:1;align-items:center;gap:2.5px;height:26px;display:flex;overflow:hidden}.wave i{background:#1522383d;border-radius:2px;flex-shrink:0;width:2.5px;transition:background .3s}.voice.playing .wave i{background:var(--accent);animation:.9s ease-in-out infinite alternate pulseBar}@keyframes pulseBar{0%{transform:scaleY(.5)}to{transform:scaleY(1.2)}}.media-wrap{margin-top:12px}.masonry{columns:2;column-gap:9px}@media (width>=900px){.masonry{columns:3;column-gap:12px}}.m-tile{break-inside:avoid;border:1px solid var(--stroke);box-shadow:var(--s1);cursor:pointer;transform-style:preserve-3d;animation:tileIn .55s var(--ease) both;transition:transform .45s var(--ease),box-shadow .4s ease;border-radius:16px;margin-bottom:9px;position:relative;overflow:hidden}@media (width>=900px){.m-tile{margin-bottom:12px}}@keyframes tileIn{0%{opacity:0;transform:translateY(22px)scale(.94)}to{opacity:1;transform:none}}.m-tile:hover{box-shadow:var(--s3);z-index:5}.m-art{transition:transform .8s var(--ease),filter .5s ease;width:100%;display:block}img.m-art{object-fit:cover;height:auto;min-height:90px}.m-tile:hover .m-art{filter:brightness(1.04);transform:scale(1.08)}.m-shine{pointer-events:none;opacity:0;mix-blend-mode:screen;background:radial-gradient(circle at var(--mx,50%) var(--my,50%),#ffffff47,transparent 55%);transition:opacity .4s;position:absolute;inset:0}.m-tile:hover .m-shine{opacity:1}.m-tag{letter-spacing:.1em;border:1px solid var(--stroke);-webkit-backdrop-filter:blur(8px);opacity:.9;transition:all .4s var(--spring);background:#ffffffe0;border-radius:999px;padding:4px 8px;font-family:DM Mono;font-size:8px;position:absolute;bottom:8px;left:8px;transform:translateY(2px)}.m-tile:hover .m-tag{opacity:1;transform:none}.m-open{opacity:0;width:24px;height:24px;transition:all .4s var(--spring);-webkit-backdrop-filter:blur(8px);background:#ffffffe6;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:8px;right:8px;transform:scale(.6)rotate(-30deg)}.m-tile:hover .m-open{opacity:1;transform:none}.sheet-wrap{z-index:300;pointer-events:none;position:fixed;inset:0}.sheet-wrap.open{pointer-events:auto}.backdrop{opacity:0;-webkit-backdrop-filter:blur(5px);background:#17181d4d;transition:opacity .4s;position:absolute;inset:0}.sheet-wrap.open .backdrop{opacity:1}.sheet{border:1px solid var(--stroke);-webkit-backdrop-filter:blur(40px)saturate(170%);transition:transform .55s var(--ease);box-shadow:var(--s3);background:#fcfdfff2;border-radius:28px;max-height:84dvh;padding:18px 16px 22px;position:absolute;bottom:10px;left:10px;right:10px;overflow-y:auto;transform:translateY(115%)}@media (width>=900px){.sheet{width:450px;left:50%;right:auto;transform:translate(-50%,115%)}.sheet-wrap.open .sheet{transform:translate(-50%)}}@media (width<=899px){.sheet-wrap.open .sheet{transform:translateY(0)}}.grabber{background:#15223826;border-radius:99px;width:34px;height:4px;margin:0 auto 14px}.dest-pill{background:var(--bg);border:1px solid var(--stroke-strong);transition:all .3s var(--spring);border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:11.5px;display:inline-flex}.dest-pill:active{transform:scale(.94)}.cap-row{grid-template-columns:repeat(5,1fr);gap:7px;display:grid}.cap-opt{text-align:center;background:var(--bg);border:1px solid var(--stroke);animation:riseIn .45s var(--ease) both;transition:transform .35s var(--spring),background .3s ease;border-radius:16px;padding:13px 3px 10px}.cap-opt:hover{background:var(--bg-deep);transform:translateY(-3px)}.cap-opt:nth-child(2){animation-delay:50ms}.cap-opt:nth-child(3){animation-delay:.1s}.cap-opt:nth-child(4){animation-delay:.15s}.cap-opt:nth-child(5){animation-delay:.2s}.cap-opt .t{letter-spacing:.1em;text-transform:uppercase;color:var(--fog);margin-top:5px;font-family:DM Mono;font-size:8px}.mb-pick{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px;display:grid}.mb-thumb{cursor:pointer;height:80px;transition:all .35s var(--spring);background-position:50%;background-size:cover;border:2px solid #0000;border-radius:13px;position:relative;overflow:hidden}.mb-thumb:hover{transform:scale(1.03)}.mb-thumb.sel{border-color:var(--ink);transform:scale(.96)}.mb-check{background:var(--ink);color:#fff;opacity:0;width:19px;height:19px;transition:all .35s var(--spring);border-radius:50%;justify-content:center;align-items:center;font-size:10px;display:flex;position:absolute;top:5px;right:5px;transform:scale(.4)}.mb-thumb.sel .mb-check{opacity:1;transform:none}.field{border:1px solid var(--stroke-strong);background:var(--bg);border-radius:14px;outline:none;width:100%;margin-top:10px;padding:12px 14px;font-size:13px;transition:border-color .3s,box-shadow .3s}.field:focus{border-color:var(--ink);box-shadow:0 0 0 3px #17181d0f}textarea.field{resize:none;min-height:84px}.rec-circle{background:var(--ink);color:#fff;width:70px;height:70px;transition:all .4s var(--spring);border-radius:50%;justify-content:center;align-items:center;margin:16px auto 6px;display:flex}.rec-circle.rec{background:#c0392b;animation:1.6s ease-in-out infinite recPulse}@keyframes recPulse{0%,to{box-shadow:0 0 #c0392b59}50%{box-shadow:0 0 0 14px #c0392b00}}.lightbox{z-index:500;-webkit-backdrop-filter:blur(12px);background:#0c111af2;flex-direction:column;display:none;position:fixed;inset:0}.lightbox.open{animation:lbIn .4s var(--ease) both;display:flex}@keyframes lbIn{0%{opacity:0}to{opacity:1}}.lb-top{padding:max(env(safe-area-inset-top),16px) 16px 10px;color:#fff;justify-content:space-between;align-items:center;display:flex}.lb-stage{touch-action:pan-y;flex:1;position:relative;overflow:hidden}.lb-img{transition:transform .6s var(--ease),opacity .45s ease;background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:20px;position:absolute;inset:20px;box-shadow:0 30px 80px #0000008c}.lb-meta{padding:12px 20px max(env(safe-area-inset-bottom),20px);color:#fff;text-align:center}.lb-src{letter-spacing:.1em;color:#ffffff80;margin-top:4px;font-family:DM Mono;font-size:9.5px}.lb-edge{cursor:pointer;z-index:2;width:22%;position:absolute;top:0;bottom:0}.lb-edge.l{left:0}.lb-edge.r{right:0}.back-inline{color:var(--fog);margin-top:max(env(safe-area-inset-top),16px);transition:transform .3s var(--ease);align-items:center;gap:7px;font-size:12.5px;display:inline-flex}.back-inline:hover{transform:translate(-3px)}.gal-toggle{background:var(--bg-deep);border:1px solid var(--stroke);border-radius:999px;gap:5px;padding:4px;display:flex}.gal-mode{letter-spacing:.08em;color:var(--fog);transition:all .32s var(--ease);border-radius:999px;padding:8px 15px;font-family:DM Mono;font-size:10px}.gal-mode.on{background:var(--ink);color:#fff;box-shadow:var(--s1)}.fan-stage{perspective:1300px;touch-action:pan-y;justify-content:center;align-items:center;width:100%;min-width:0;height:min(400px,58dvh);margin-top:10px;display:flex;position:relative;overflow:hidden}@media (width>=900px){.fan-stage{height:500px}}.fan-card{width:min(250px,66vw);height:min(340px,48dvh);box-shadow:var(--s3);border:1px solid var(--stroke);cursor:pointer;transition:transform .6s var(--ease),opacity .5s ease,filter .5s ease;border-radius:24px;position:absolute;overflow:hidden}@media (width>=900px){.fan-card{width:300px;height:410px}}.fan-art{transition:transform .8s var(--ease);background-position:50%;background-size:cover;position:absolute;inset:0}.fan-card.center:hover .fan-art{transform:scale(1.05)}.fan-label{color:#fff;z-index:2;position:absolute;bottom:13px;left:13px}.fan-nav{justify-content:center;align-items:center;gap:12px;margin-top:4px;display:flex}.fan-count{letter-spacing:.1em;color:var(--fog);background:var(--card);border:1px solid var(--stroke);box-shadow:var(--s1);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:56vw;padding:9px 15px;font-family:DM Mono;font-size:10.5px;overflow:hidden}.arrow{border-radius:50%;flex-shrink:0;width:40px;height:40px}.ring-stage{justify-content:center;align-items:center;width:100%;min-width:0;height:min(520px,74dvh);display:flex;position:relative;overflow:hidden}.ring{animation:64s linear infinite spin;position:relative}.ring-stage:hover .ring{animation-play-state:paused}@keyframes spin{to{transform:rotate(360deg)}}.ring-item{width:52px;height:68px;box-shadow:var(--s2);border:1px solid var(--stroke);transition:transform .4s var(--spring),box-shadow .3s ease;cursor:pointer;border-radius:9px;margin:-34px 0 0 -26px;position:absolute;top:50%;left:50%;overflow:hidden}.ring-item:hover{box-shadow:var(--s3);z-index:9}.ring-item>div{background-position:50%;background-size:cover;width:100%;height:100%;animation:64s linear infinite spinBack}@keyframes spinBack{to{transform:rotate(-360deg)}}.ring-center{text-align:center;pointer-events:none;position:absolute}.ring-center>*{pointer-events:auto}.studio-grid{gap:16px;margin-top:6px;display:grid}.sg-canvas{order:1}.sg-pal{order:2}.sg-rail{order:3}@media (width>=900px){.studio-grid{grid-template-columns:270px 1fr 300px;align-items:start;gap:20px}.sg-pal{order:1}.sg-canvas{order:2}.sg-rail{order:3}}.canvas-panel{padding:14px;position:relative;overflow:hidden}.canvas-bg{background:radial-gradient(ellipse at 50% 28%,#fdfeff,var(--bg-deep));border:1px solid var(--stroke);border-radius:18px;padding:10px;position:relative;overflow:hidden}.ov-frame{border-radius:12px;width:100%;max-width:min(100%,48dvh);margin:0 auto;position:relative;overflow:hidden}.ov-frame img.ov-photo{width:100%;height:auto;display:block}.rg-ov{pointer-events:none;opacity:0;transition:opacity .35s ease,background .45s var(--ease);-webkit-mask-source-type:luminance;position:absolute;inset:0;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-source-type:luminance;mask-mode:luminance}.rg-ov.tint{opacity:.52}.rg-ov.hot{opacity:.6}.rg-probe{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.rg-hot{cursor:pointer;position:absolute}.rg-tip{z-index:5;pointer-events:none;letter-spacing:.08em;white-space:nowrap;border:1px solid var(--stroke);box-shadow:var(--s2);-webkit-backdrop-filter:blur(8px);background:#ffffffeb;border-radius:999px;padding:5px 9px;font-family:DM Mono;font-size:9px;position:absolute;transform:translate(-50%,-115%)}.legend{letter-spacing:.12em;text-transform:uppercase;color:var(--fog);flex-wrap:wrap;justify-content:center;gap:12px;margin-top:10px;font-family:DM Mono;font-size:8.5px;display:flex}.region-row{border:1px solid var(--stroke);cursor:pointer;text-align:left;width:100%;transition:all .35s var(--ease);border-radius:13px;justify-content:space-between;align-items:center;gap:8px;margin-bottom:7px;padding:10px 12px;display:flex}.region-row:hover{border-color:var(--stroke-strong);transform:translate(2px)}.region-row.sel{background:#0a84ff0d;border-color:#0a84ff59}.rr-state{letter-spacing:.1em;text-transform:uppercase;transition:background .3s var(--ease),color .3s var(--ease);border-radius:7px;flex-shrink:0;padding:5px 8px;font-family:DM Mono;font-size:8.5px}.rr-state.sel{background:var(--accent);color:#fff}.rr-state.none{background:var(--bg-deep);color:var(--faint)}.conf{border-radius:50%;flex-shrink:0;width:6px;height:6px}.conf.hi{background:var(--ok)}.conf.mid{background:var(--warn)}.pal-rail{scrollbar-width:none;scroll-snap-type:x mandatory;gap:9px;max-width:100%;padding:5px 2px 10px;display:flex;overflow-x:auto}.pal-rail::-webkit-scrollbar{display:none}@media (width>=900px){.pal-rail{flex-direction:column;max-height:530px;padding-right:5px;overflow:visible auto}}.pal-card{background:var(--card);text-align:left;border:1.5px solid var(--stroke);width:142px;box-shadow:var(--s1);scroll-snap-align:center;cursor:pointer;transition:transform .4s var(--spring),border-color .3s ease,box-shadow .35s ease;border-radius:16px;flex-shrink:0;padding:11px}@media (width>=900px){.pal-card{width:auto}}.pal-card.on{border-color:var(--ink);box-shadow:var(--s2);transform:translateY(-3px)}.pal-blocks{border:1px solid var(--stroke);border-radius:9px;height:40px;display:flex;overflow:hidden}.pal-blocks>*{transition:flex .45s var(--ease);flex:1}.pal-card:hover .pal-blocks>:hover{flex:1.7}.pal-name{margin-top:8px;font-family:Syne;font-size:12px;font-weight:600}.pal-id{color:var(--faint);letter-spacing:.1em;margin-top:2px;font-family:DM Mono;font-size:8.5px}.slot-list{padding:14px}.slot-row{border:1px solid var(--stroke);cursor:pointer;text-align:left;border-radius:13px;align-items:center;gap:10px;width:100%;margin-bottom:7px;padding:9px 11px;transition:border-color .3s,background .3s;display:flex}.slot-row.on{border-color:var(--accent);background:#0a84ff0d}.slot-swatch{border:1px solid var(--stroke);width:24px;height:24px;transition:transform .4s var(--spring),background .45s var(--ease);border-radius:7px;flex-shrink:0}.slot-row:hover .slot-swatch{transform:scale(1.12)rotate(-4deg)}.kbtn{border:1px solid var(--stroke-strong);width:26px;height:26px;color:var(--fog);transition:transform .3s var(--spring),background .3s ease;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex}.kbtn:hover{background:var(--bg-deep)}.kbtn:active{transform:scale(.9)}.kbtn:disabled{opacity:.35;cursor:default}.est-nums{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:10px;display:grid}.est-cell{background:var(--bg);border:1px solid var(--stroke);border-radius:13px;min-width:0;padding:9px 10px}.est-cell .n{font-family:Syne;font-size:16px;font-weight:700}.est-cell .t{letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-top:2px;font-family:DM Mono;font-size:7.5px}.est-copy{color:#3c4757;background:var(--bg);border:1px solid var(--stroke);border-radius:13px;margin-top:10px;padding:10px 12px;font-size:12px;line-height:1.6}.est-copy.amber{color:var(--warn);background:#b26a0012;border-color:#b26a0038}.regime-pill{letter-spacing:.14em;text-transform:uppercase;background:var(--bg-deep);border:1px solid var(--stroke);color:var(--fog);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-family:DM Mono;font-size:8.5px;display:inline-flex}.regime-pill.amber{color:var(--warn);border-color:#b26a004d}.share-link{background:var(--bg);border:1px solid var(--stroke);border-radius:14px;justify-content:space-between;align-items:center;gap:9px;min-width:0;margin-top:12px;padding:12px 14px;display:flex}.pub{background:var(--bg);width:100%;max-width:100%;min-height:100dvh;overflow-x:hidden}.pub-content{max-width:960px;padding:0 16px max(env(safe-area-inset-bottom),40px);min-width:0;margin:0 auto}@media (width>=900px){.pub-content{padding:0 40px 60px}}.pub-hdr{padding:max(env(safe-area-inset-top),26px) 0 18px}@media (width>=900px){.pub-hdr{padding-top:52px}}.pub-grid{grid-template-columns:repeat(2,1fr);gap:10px;min-width:0;display:grid}@media (width>=900px){.pub-grid{grid-template-columns:repeat(3,1fr);gap:14px}}.pub-tile{border:1px solid var(--stroke);background:var(--card);box-shadow:var(--s1);min-width:0;animation:tileIn .55s var(--ease) both;border-radius:18px;position:relative;overflow:hidden}.pub-tile img{object-fit:cover;width:100%;height:auto;min-height:120px;display:block}.pub-design{min-width:0;margin-top:26px}.pub .tl-card img{object-fit:cover;max-height:420px}.pub-foot{text-align:center;padding:36px 0 8px}.pub-center{place-items:center;min-height:100dvh;padding:16px;display:grid}.chip{background:var(--key-face);border:1px solid var(--key-rim);box-shadow:var(--sh-up);transition:transform var(--up),box-shadow var(--up),background .3s ease,color .3s ease;transform:translateY(0)}.chip:hover{background:var(--key-face-hi)}.chip:active{transform:translateY(var(--travel));box-shadow:var(--sh-down);transition:transform var(--down),box-shadow var(--down)}.chip.on{color:#fff;background:var(--key-dark);border-color:var(--key-rim-dark);box-shadow:var(--sh-latch);text-shadow:0 1px #0006;transform:translateY(2px)}.chip.on:active{transform:translateY(4px)}.seg,.gal-toggle{background:var(--bg-deep);border:1px solid var(--stroke);box-shadow:var(--sh-well)}.seg button,.gal-mode{transition:all var(--up);background:0 0;border:1px solid #0000}.seg button:active,.gal-mode:active{transition:all var(--down);transform:translateY(1px)}.seg button.on,.gal-mode.on{color:var(--ink);background:var(--key-face);border-color:var(--key-rim);box-shadow:0 1px 0 0 var(--key-rim),0 3px 6px -1px var(--key-cast),inset 0 1px 0 0 var(--key-lip);transform:translateY(-1px)}.seg button.latch.on{color:#fff;background:var(--key-dark);border-color:var(--key-rim-dark);text-shadow:0 1px #0006;transform:translateY(0);box-shadow:0 1px 3px #0000004d,inset 0 1px #ffffff1f}.seg button.done{color:var(--accent)}.fab{border:1px solid var(--key-rim-dark);box-shadow:0 3px 0 0 var(--key-rim-dark),0 8px 18px -4px #15284a66, inset 0 2px 2px 0 #ffffff38,inset 0 -3px 6px 0 #00000073;transition:transform var(--up),box-shadow var(--up);background:radial-gradient(circle at 38% 28%,#4a5566 0%,#2a3340 42%,#151a22 100%)}.fab:active{box-shadow:0 0 0 0 var(--key-rim-dark),0 2px 5px -1px #15284a4d, inset 0 2px 6px 0 #0000008c,inset 0 -1px 0 0 #ffffff1a;transition:transform var(--down),box-shadow var(--down);transform:translateY(3px)}.fab svg{transition:transform var(--up)}.fab:active svg{transform:scale(.88)}.glassbtn,.arrow{background:var(--key-face);border:1px solid var(--key-rim);-webkit-backdrop-filter:none;box-shadow:var(--sh-up);transition:transform var(--up),box-shadow var(--up),background .3s ease}.glassbtn:hover,.arrow:hover{background:var(--key-face-hi);box-shadow:var(--sh-up)}.glassbtn:active,.arrow:active{transform:translateY(var(--travel));box-shadow:var(--sh-down);transition:transform var(--down),box-shadow var(--down)}.gen-btn,.primary-btn{background:var(--key-dark);border:1px solid var(--key-rim-dark);box-shadow:0 4px 0 0 var(--key-rim-dark),0 10px 22px -6px #15284a66, inset 0 1px 0 0 #ffffff29,inset 0 -2px 6px 0 #0006;transition:transform var(--up),box-shadow var(--up)}.gen-btn:hover{box-shadow:0 5px 0 0 var(--key-rim-dark),0 14px 28px -6px #15284a70, inset 0 1px 0 0 #ffffff29,inset 0 -2px 6px 0 #0006;transform:translateY(-1px)}.gen-btn:active,.primary-btn:active{box-shadow:0 0 0 0 var(--key-rim-dark),0 3px 8px -3px #15284a4d,inset 0 2px 7px 0 #00000080;transition:transform var(--down),box-shadow var(--down);transform:translateY(4px)}.gen-btn svg{transition:transform var(--up)}.gen-btn:active svg{transform:translate(2px)}.action{background:var(--key-face);border:1px solid var(--key-rim);box-shadow:var(--sh-up);transition:transform var(--up),box-shadow var(--up),background .3s ease}.action:hover{background:var(--key-face-hi);box-shadow:0 3px 0 0 var(--key-rim),0 7px 14px -3px var(--key-cast),inset 0 1px 0 0 var(--key-lip);transform:translateY(-1px)}.action:active{transform:translateY(var(--travel));box-shadow:var(--sh-down);transition:transform var(--down),box-shadow var(--down)}.pal-card{background:var(--key-face);border:1px solid var(--key-rim);box-shadow:var(--sh-up);transition:transform var(--up),box-shadow var(--up),border-color .3s ease}.pal-card:hover{box-shadow:0 3px 0 0 var(--key-rim),0 8px 16px -3px var(--key-cast),inset 0 1px 0 0 var(--key-lip);transform:translateY(-2px)}.pal-card:active{transform:translateY(var(--travel));box-shadow:var(--sh-down);transition:transform var(--down),box-shadow var(--down)}.pal-card.on{border-color:var(--key-rim-dark);box-shadow:0 0 0 0 var(--key-rim-dark),0 1px 3px #17181d3d, inset 0 2px 5px -1px #17181d2e,inset 0 -1px 0 0 #ffffffb3;background:linear-gradient(#edf2f9,#fafcfe);transform:translateY(2px)}.region-row{background:var(--key-face);border:1px solid var(--key-rim);box-shadow:var(--sh-up);transition:transform var(--up),box-shadow var(--up),background .3s ease,border-color .3s ease}.region-row:hover{background:var(--key-face-hi);transform:translateY(-1px)}.region-row:active{box-shadow:var(--sh-down);transition:transform var(--down),box-shadow var(--down);transform:translateY(2px)}.region-row.sel{border-color:var(--accent-line);background:linear-gradient(#e4effe,#f3f8ff);transform:translateY(2px);box-shadow:0 0 #0a84ff66,0 1px 3px #0a84ff33,inset 0 2px 5px -1px #0a84ff3d,inset 0 -1px #fffc}.region-row.lock{border-color:var(--key-rim-dark);box-shadow:0 0 0 0 var(--key-rim-dark),0 1px 3px #17181d33, inset 0 2px 5px -1px #17181d33,inset 0 -1px 0 0 #ffffffb3;background:linear-gradient(#dce4ee,#eaf0f7);transform:translateY(2px)}.rail-item{box-shadow:var(--sh-up);transition:transform var(--up),box-shadow var(--up),filter .3s ease,opacity .3s ease,border-color .3s ease}.rail-item:active{box-shadow:var(--sh-down);transition:transform var(--down),box-shadow var(--down);transform:translateY(2px)}.rail-item.on{border-color:var(--key-rim-dark);box-shadow:0 0 0 0 var(--key-rim-dark),0 1px 3px #17181d42, inset 0 2px 5px -1px #17181d59;transform:translateY(2px)}.save-btn,.cap-opt,.dest-pill{background:var(--key-face);border:1px solid var(--key-rim);box-shadow:var(--sh-up);transition:transform var(--up),box-shadow var(--up),background .3s ease}.save-btn:hover,.cap-opt:hover,.dest-pill:hover{background:var(--key-face-hi)}.save-btn:active,.cap-opt:active,.dest-pill:active{box-shadow:var(--sh-down);transition:transform var(--down),box-shadow var(--down);transform:translateY(2px)}.save-btn.saved{color:var(--ok);background:linear-gradient(#e3f3ea,#d2eadc);border-color:#96c4ab;transform:translateY(2px);box-shadow:0 0 #96c4ab,0 1px 3px #1b7f522e,inset 0 2px 4px -1px #1b7f5233}.tabbar{box-shadow:var(--s3),var(--sh-well);background:#fafcffe0}.tab{transition:transform var(--up),background .3s ease,color .3s ease;border-radius:20px}.tab:active{transition:transform var(--down);transform:translateY(2px)}.tab.on{background:var(--key-face);box-shadow:0 1px 0 0 var(--key-rim),0 3px 6px -1px var(--key-cast),inset 0 1px 0 0 var(--key-lip)}@media (width>=900px){.snav{transition:transform var(--up),background .3s ease,box-shadow .3s ease}.snav:active{transition:transform var(--down);transform:translateY(2px)}.snav.on{background:var(--key-face);border:1px solid var(--key-rim);box-shadow:0 1px 0 0 var(--key-rim),0 3px 6px -1px var(--key-cast),inset 0 1px 0 0 var(--key-lip)}}@media (prefers-reduced-motion:reduce){*{animation:none!important}.chip,.action,.pal-card,.region-row,.glassbtn,.arrow,.gen-btn,.fab,.save-btn,.cap-opt{transition:box-shadow .12s linear,background .12s linear!important}}
