:root{--ink:#f3efe6;--dim:#f3efe68c;--glass:#0e0d0c8c;--line:#f3efe624;--amber:#ffb547}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;background:#0b0b0a;margin:0;font:13px/1.3 ui-sans-serif,-apple-system,SF Pro Text,Segoe UI,Roboto,sans-serif;overflow:hidden}#stage{top:0;bottom:0;left:0;right:var(--pw);touch-action:none;transition:right .35s cubic-bezier(.2,.8,.2,1);display:block;position:fixed}#stage canvas{touch-action:none;display:block;width:100%!important;height:100%!important}#boot{text-align:center;z-index:10;background:#0b0b0a;place-content:center;transition:opacity .8s;display:grid;position:fixed;inset:0}#boot .mark{letter-spacing:.6em;padding-left:.6em;font-size:22px;font-weight:600}#boot .sub{color:var(--dim);letter-spacing:.2em;margin-top:12px;font-family:ui-monospace,Menlo,monospace;font-size:11px}body.ready #boot{opacity:0;pointer-events:none}#top{top:0;left:0;right:var(--pw);padding:max(14px, env(safe-area-inset-top)) 18px 0;pointer-events:none;z-index:5;align-items:center;gap:12px;transition:right .35s,opacity .35s;display:flex;position:fixed}.brand{letter-spacing:.5em;opacity:.85;text-shadow:0 1px 8px #00000080;font-size:12px;font-weight:600}#sceneName{letter-spacing:.1em;color:var(--dim);text-transform:uppercase;text-shadow:0 1px 8px #0009;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}#sceneName b{color:var(--ink);margin-right:6px;font-weight:600}button{font:inherit;color:inherit;cursor:pointer}.ghost{pointer-events:auto;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:50%;width:28px;height:28px;font-family:Georgia,serif;font-style:italic}:root{--pw:360px}body.panel-closed{--pw:0px}#panel{width:calc(var(--pw) - 20px);z-index:6;border:1px solid var(--line);-webkit-backdrop-filter:blur(20px)saturate(1.2);background:#0e0d0cb8;border-radius:16px;flex-direction:column;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .35s;display:flex;position:fixed;top:10px;bottom:10px;right:10px;overflow:hidden}body.panel-closed #panel{opacity:0;pointer-events:none;width:340px;transform:translate(calc(100% + 20px))}#panel .tabs{border-bottom:1px solid var(--line);flex:none;gap:2px;padding:8px;display:flex}#panel .tabs button{color:var(--dim);letter-spacing:.2em;text-transform:uppercase;background:0 0;border:0;border-radius:9px;flex:1;padding:9px 4px;font-size:11px;font-weight:600}#panel .tabs button.on{color:#111;background:var(--ink)}#panel .tabs #hidePanel{letter-spacing:0;flex:none;width:34px;font-size:14px}#panel .body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#f3efe633 transparent;flex:1;padding:4px 14px 90px;overflow-y:auto}.sec{border-bottom:1px solid #f3efe612;padding:12px 0 6px}.sec h3{letter-spacing:.28em;text-transform:uppercase;color:var(--amber);margin:0 0 8px;font-size:10px;font-weight:600}.ctl{margin:0 0 10px}.ctl .top{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.ctl label{color:var(--ink);font-size:12px}.ctl .note,p.note{color:var(--dim);font-size:10.5px}p.note{margin:2px 0 8px;line-height:1.4}.ctl .val{text-align:right;width:108px;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:6px;padding:2px 5px;font:12px ui-monospace,Menlo,monospace}.ctl .val:hover{border-color:var(--line)}.ctl .val:focus{border-color:var(--amber);background:#0000004d;outline:none}.ctl .line{align-items:center;gap:6px;display:flex}.ctl input[type=range]{min-width:0;accent-color:var(--amber);flex:1;height:22px;margin:0}.nd{border:1px solid var(--line);touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#f3efe60d;border-radius:8px;flex:none;width:28px;height:28px;padding:0;font-size:15px;line-height:1}.nd:hover{background:#f3efe61f}.nd:active{background:var(--amber);color:#111}.seg{background:#00000040;border-radius:9px;gap:3px;padding:3px;display:flex}.seg.wrap{flex-wrap:wrap}.seg button{color:var(--dim);white-space:nowrap;background:0 0;border:0;border-radius:7px;flex:auto;padding:7px 8px;font-size:11.5px}.seg button:hover{color:var(--ink)}.seg button.on{color:var(--ink);background:#f3efe629;box-shadow:inset 0 0 0 1px #f3efe62e}.btns{flex-wrap:wrap;gap:5px;margin:2px 0 10px;display:flex}.btns button{border:1px solid var(--line);background:#f3efe60d;border-radius:999px;padding:6px 11px;font-size:11.5px}.btns button:hover{background:#f3efe624}.btns.mini button{padding:5px 10px;font-family:ui-monospace,Menlo,monospace}.swatches{flex-wrap:wrap;gap:8px;margin-bottom:6px;display:flex}.swatch{outline:1px solid var(--line);outline-offset:2px;border:2px solid #0000;border-radius:50%;width:30px;height:30px;padding:0;box-shadow:inset 0 -5px 8px #00000059,inset 0 3px 5px #ffffff40}.swatch.on{border-color:var(--ink);outline-color:var(--ink)}.swatch.custom{cursor:pointer;background:conic-gradient(#f33,#fd3,#3f6,#3cf,#63f,#f3c,#f33);display:inline-block;position:relative}.swatch.custom input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.pname{color:var(--dim);letter-spacing:.04em;margin-bottom:10px;font-size:11px}#panelBtn{top:max(12px, env(safe-area-inset-top));z-index:5;opacity:0;pointer-events:none;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:7px 14px;font-size:12px;transition:opacity .3s;position:fixed;right:14px}body.panel-closed #panelBtn{opacity:1;pointer-events:auto}#shutter{z-index:7;bottom:max(22px, env(safe-area-inset-bottom));left:calc((100vw - var(--pw)) / 2);border:2px solid var(--ink);background:#0000002e;border-radius:50%;place-items:center;width:66px;height:66px;transition:left .35s,opacity .35s;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 6px 24px #0006}#shutter span{background:var(--ink);border-radius:50%;width:52px;height:52px;transition:transform .12s}#shutter:active span{transform:scale(.88)}#shutter.busy span{background:var(--amber);animation:1s infinite pulse}@keyframes pulse{50%{transform:scale(.8)}}#frameBox{pointer-events:none;z-index:2;transition:all .25s;position:fixed}#frameBox.masked{outline:1px solid #f3efe659;box-shadow:0 0 0 200vmax #050505b8}#frameBox .g{display:none;position:absolute;inset:0}#frameBox[data-grid=thirds] .g{background:linear-gradient(90deg,#0000 calc(33.333% - .5px),#ffffff59 calc(33.333% - .5px) calc(33.333% + .5px),#0000 calc(33.333% + .5px) calc(66.666% - .5px),#ffffff59 calc(66.666% - .5px) calc(66.666% + .5px),#0000 calc(66.666% + .5px)),linear-gradient(0deg,#0000 calc(33.333% - .5px),#ffffff59 calc(33.333% - .5px) calc(33.333% + .5px),#0000 calc(33.333% + .5px) calc(66.666% - .5px),#ffffff59 calc(66.666% - .5px) calc(66.666% + .5px),#0000 calc(66.666% + .5px));display:block}#frameBox[data-grid=centre] .g{background:linear-gradient(90deg,#0000 calc(50% - .5px),#ffffff59 calc(50% - .5px) calc(50% + .5px),#0000 calc(50% + .5px)),linear-gradient(0deg,#0000 calc(50% - .5px),#ffffff59 calc(50% - .5px) calc(50% + .5px),#0000 calc(50% + .5px));display:block}#focusRing{border:1.5px solid var(--amber);opacity:0;pointer-events:none;border-radius:4px;width:64px;height:64px;margin:-32px 0 0 -32px;transition:opacity .6s,transform .3s;position:fixed}#focusRing.show{opacity:1;transition:opacity .1s,transform .3s;transform:scale(.8)}#flash{opacity:0;pointer-events:none;background:#fff;transition:opacity .5s;position:fixed;inset:0}#flash.go{opacity:.7;transition:none}#toast{background:var(--glass);border:1px solid var(--line);opacity:0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;padding:8px 14px;transition:opacity .4s;position:fixed;bottom:100px;left:50%;transform:translate(-50%)}#toast.show{opacity:1}dialog{color:var(--ink);border:1px solid var(--line);background:#141312;border-radius:16px;max-width:420px;padding:22px}dialog::backdrop{background:#00000080}dialog h2{letter-spacing:.4em;margin:0 0 12px;font-size:14px}dialog .small{color:var(--dim);font-size:12px}dialog a{color:var(--ink)}dialog button{border:1px solid var(--line);background:#f3efe61a;border-radius:10px;margin-top:8px;padding:6px 14px}body.shooting #panel,body.shooting #top{opacity:0}@media (max-width:820px){:root{--sheet:44vh}#panel{width:auto;height:var(--sheet);border-bottom:0;border-radius:16px 16px 0 0;inset:auto 0 0}body.panel-closed #panel{width:auto;transform:translateY(100%)}#panel .body{padding-bottom:calc(24px + env(safe-area-inset-bottom))}#top{right:0}#sceneName{font-size:0}#sceneName b{font-size:11px}#stage{right:0;bottom:var(--sheet);transition:bottom .35s cubic-bezier(.2,.8,.2,1)}body.panel-closed #stage{bottom:0}#shutter{left:auto;right:14px;bottom:calc(var(--sheet) + 14px);width:60px;height:60px;transform:none}#shutter span{width:46px;height:46px}body.panel-closed #shutter{bottom:max(22px, env(safe-area-inset-bottom));left:50%;right:auto;transform:translate(-50%)}#panelBtn{top:auto;bottom:max(34px, env(safe-area-inset-bottom));right:14px}.nd{width:34px;height:34px}#toast{bottom:calc(var(--sheet) + 90px)}}#curtain{pointer-events:none;z-index:30;position:fixed;inset:0}#curtain i{background:#050505;height:50%;position:absolute;left:0;right:0;transform:scaleY(0)}#curtain i:first-child{transform-origin:top;top:0}#curtain i:last-child{transform-origin:bottom;bottom:0}#curtain.snap i{animation:.22s cubic-bezier(.6,0,.4,1) blade}@keyframes blade{0%{transform:scaleY(0)}45%,55%{transform:scaleY(1.02)}to{transform:scaleY(0)}}#develop{z-index:25;opacity:0;pointer-events:none;flex-direction:column;align-items:center;gap:10px;transition:opacity .3s;display:flex;position:fixed;bottom:44px;left:50%;transform:translate(-50%)}#develop .label{letter-spacing:.5em;color:var(--ink);padding-left:.5em;font-size:10px}#develop .bar{background:#f3efe62e;border-radius:2px;width:180px;height:2px;overflow:hidden}#develop .bar span{background:var(--amber);width:40%;height:100%;animation:1.1s cubic-bezier(.5,0,.5,1) infinite dev;display:block}@keyframes dev{0%{transform:translate(-100%)}to{transform:translate(250%)}}body.developing #develop{opacity:1}body.developing #panel,body.developing #top,body.developing #shutter,body.developing #panelBtn{opacity:0;pointer-events:none}#reveal{z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:0;pointer-events:none;background:radial-gradient(at 50% 45%,#141312d1,#050505f5);flex-direction:column;justify-content:center;align-items:center;gap:22px;padding:24px;transition:opacity .45s;display:flex;position:fixed;inset:0}#reveal.show{opacity:1;pointer-events:auto}#reveal .print{opacity:0;flex-direction:column;gap:10px;width:-moz-fit-content;width:fit-content;margin:0;transition:transform .9s cubic-bezier(.16,1,.3,1) .12s,opacity .6s .12s;display:flex;transform:translateY(22px)scale(.965)}#reveal.show .print{opacity:1;transform:none}#reveal .mat{background:#f3efe6;padding:clamp(6px,1.1vw,14px);position:relative;overflow:hidden;box-shadow:0 30px 80px #0009,0 2px 6px #0006}#reveal img{width:auto;max-width:min(86vw,1500px);height:auto;max-height:68vh;display:block}#reveal .sheen{pointer-events:none;background:linear-gradient(105deg,#0000 35%,#ffffff38 50%,#0000 65%);position:absolute;inset:0;transform:translate(-120%)}#reveal.show .sheen{animation:1.4s cubic-bezier(.4,0,.2,1) .55s both sheen}@keyframes sheen{to{transform:translate(120%)}}#reveal figcaption{letter-spacing:.12em;color:#f3efe69e;text-transform:uppercase;justify-content:space-between;gap:24px;width:0;min-width:100%;font-size:11px;display:flex}#reveal .where b{color:var(--ink);letter-spacing:.32em;margin-right:10px;font-weight:600}#reveal .exif{letter-spacing:.04em;text-transform:none;font-family:ui-monospace,Menlo,monospace}#reveal .actions{opacity:0;gap:10px;transition:opacity .5s .7s,transform .5s .7s;display:flex;transform:translateY(8px)}#reveal.show .actions{opacity:1;transform:none}#reveal .actions button{border:1px solid var(--line);color:var(--ink);background:#f3efe614;border-radius:999px;padding:10px 20px;font-size:13px}#reveal .actions button.primary{background:var(--ink);color:#111;border-color:var(--ink);font-weight:600}@media (max-width:820px){#reveal img{max-width:92vw;max-height:66vh}#reveal figcaption{flex-direction:column;gap:4px}#reveal .actions{width:100%;max-width:420px}#reveal .actions button{flex:1}}#menu{z-index:30;opacity:0;pointer-events:none;background:radial-gradient(at 50% 30%,#141412d1,#080807f5);flex-direction:column;justify-content:center;align-items:center;gap:28px;padding:32px 20px;transition:opacity .45s;display:flex;position:fixed;inset:0;overflow-y:auto}body.in-menu #menu{opacity:1;pointer-events:auto}body.in-menu #panel,body.in-menu #shutter,body.in-menu #panelBtn,body.in-menu #scenesBtn,body.in-menu #sceneName,body.in-menu #frameBox{opacity:0;pointer-events:none}#menu .m-head{text-align:center}#menu .m-title{letter-spacing:.5em;color:var(--ink);margin-right:-.5em;font-size:clamp(28px,5vw,46px);font-weight:600}#menu .m-sub{letter-spacing:.28em;color:#f3efe68c;text-transform:uppercase;margin-top:10px;font-size:11px}#menu .m-grid{grid-template-columns:repeat(3,minmax(0,300px));justify-content:center;gap:16px;width:100%;display:grid}#menu .card{cursor:pointer;aspect-ratio:16/10;text-align:left;background:#111;border:1px solid #f3efe61f;border-radius:10px;padding:0;transition:transform .25s,border-color .25s,box-shadow .25s;position:relative;overflow:hidden;transform:translateY(0)}#menu .card img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.16,1,.3,1);display:block}#menu .card:hover{border-color:#f3efe680;transform:translateY(-3px);box-shadow:0 18px 40px #00000080}#menu .card:hover img{transform:scale(1.04)}#menu .card .lbl{background:linear-gradient(#0000,#000000c7);padding:26px 14px 12px;position:absolute;bottom:0;left:0;right:0}#menu .card b{color:var(--ink);letter-spacing:.12em;text-transform:uppercase;font-size:14px;font-weight:600;display:block}#menu .card small{color:#f3efe6a6;letter-spacing:.06em;margin-top:3px;font-size:11px;display:block}#scenesBtn.pill{width:auto;height:auto;color:var(--ink);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;margin-left:auto;margin-right:10px;padding:7px 14px;font-family:inherit;font-size:12px;font-style:normal}@media (max-width:820px){#menu .m-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#menu{justify-content:flex-start}}.seg.cars button{justify-content:center;align-items:center;gap:7px;display:inline-flex}.seg.cars i{border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 1px #ffffff59}.btns button:disabled{opacity:.35;cursor:default}.pill.galleryBtn,#top .pill{width:auto;height:auto;color:var(--ink);letter-spacing:.12em;text-transform:uppercase;border-radius:999px;padding:7px 14px;font-family:inherit;font-size:12px;font-style:normal}.g-n{color:var(--amber)}#menu .m-gal{margin-top:16px}#gallery{z-index:35;padding:max(18px, env(safe-area-inset-top)) 22px 22px;opacity:0;pointer-events:none;background:#080807f7;flex-direction:column;transition:opacity .35s;display:flex;position:fixed;inset:0}body.in-gallery #gallery{opacity:1;pointer-events:auto}#gallery .g-head{align-items:baseline;gap:16px;margin-bottom:18px;display:flex}#gallery .g-title{letter-spacing:.5em;font-size:18px;font-weight:600}#gallery .g-count{color:var(--dim);letter-spacing:.1em;text-transform:uppercase;flex:1;font-size:11px}#gallery .g-close{border:1px solid var(--line);letter-spacing:.12em;text-transform:uppercase;background:#f3efe60f;border-radius:999px;padding:7px 16px;font-size:12px}#gallery .g-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;padding-bottom:30px;display:grid;overflow-y:auto}#gallery .g-item{border:1px solid var(--line);aspect-ratio:3/2;background:#111;border-radius:8px;padding:0;position:relative;overflow:hidden}#gallery .g-item img{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.16,1,.3,1);display:block}#gallery .g-item:hover img{transform:scale(1.04)}#gallery .g-item span{text-align:left;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(#0000,#000000bf);padding:18px 10px 8px;font-size:11px;font-weight:600;position:absolute;bottom:0;left:0;right:0}#gallery .g-item small{letter-spacing:.04em;text-transform:none;color:var(--dim);margin-top:2px;font-weight:400;display:block}#gallery .g-empty{color:var(--dim);text-align:center;max-width:320px;margin:18vh auto 0;line-height:1.5;display:none}#gallery.empty .g-empty{display:block}#viewer{z-index:45;opacity:0;pointer-events:none;background:#050505f5;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px;transition:opacity .3s;display:flex;position:fixed;inset:0}#viewer.show{opacity:1;pointer-events:auto}#viewer .print{flex-direction:column;gap:10px;margin:0;display:flex}#viewer .mat{background:#f3efe6;padding:clamp(6px,1.1vw,14px);box-shadow:0 30px 80px #0009}#viewer img{max-width:min(88vw,1500px);max-height:70vh;display:block}#viewer figcaption{letter-spacing:.12em;color:#f3efe69e;text-transform:uppercase;justify-content:space-between;gap:24px;width:0;min-width:100%;font-size:11px;display:flex}#viewer .where b{color:var(--ink);letter-spacing:.32em;margin-right:10px}#viewer .exif{letter-spacing:.04em;text-transform:none;font-family:ui-monospace,Menlo,monospace}#viewer .actions{gap:10px;display:flex}#viewer .actions button{border:1px solid var(--line);background:#f3efe614;border-radius:999px;padding:10px 20px;font-size:13px}#viewer .actions .primary{background:var(--ink);color:#111;border-color:var(--ink);font-weight:600}#viewer .actions .v-del{color:#ff8a7a}body.in-gallery #panel,body.in-gallery #shutter{opacity:0;pointer-events:none}@media (max-width:820px){#gallery .g-grid{grid-template-columns:repeat(2,1fr);gap:8px}#viewer figcaption{flex-direction:column;gap:4px}#viewer .actions{flex-wrap:wrap;gap:8px;width:100%}#viewer .actions button{flex:28%;padding:10px 8px}#viewer .actions .v-save{flex-basis:100%}#top .galleryBtn{padding:7px 10px}}#sceneLoad{letter-spacing:.04em;color:#fff;z-index:40;pointer-events:none;background:#0b0b0c;place-items:center;font-size:15px;display:none;position:fixed;inset:0}body.scene-loading #sceneLoad{display:grid}#menu .card.cur{outline-offset:-2px;outline:2px solid #fff}.cards{grid-template-columns:1fr 1fr;gap:8px;display:grid}.card{border:1px solid var(--line);text-align:left;color:var(--ink);cursor:pointer;background:#0f0f0f;border-radius:10px;padding:0;transition:border-color .2s,transform .15s;position:relative;overflow:hidden}.card img{aspect-ratio:16/9;object-fit:cover;opacity:.8;width:100%;transition:opacity .2s;display:block}.card span{padding:6px 9px 8px;display:block}.card b{font-size:12px;font-weight:600;line-height:1.25;display:block}.card small{color:var(--dim);letter-spacing:.02em;margin-top:2px;font-size:10.5px;display:block}.card:hover img{opacity:1}.card.on{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber) inset}.card.on img{opacity:1}.card.loading:after{content:"Loading…";color:var(--amber);background:#0009;border-radius:99px;padding:3px 7px;font-size:10px;position:absolute;top:8px;right:8px}.plabel{letter-spacing:.06em;text-transform:uppercase;color:var(--dim,#8a8a8a);margin:8px 0 6px;font-size:11px}.swatch.met{background-blend-mode:normal;background-image:radial-gradient(circle at 32% 28%,#ffffff8c,#fff0 42%),radial-gradient(circle at 70% 78%,#00000059,#0000 55%)!important}
