@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-ext-500-normal-11xBT7e1.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-500-normal-DOzfAZ45.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-500-normal-T0SG181k.woff2)format("woff2"),url(/assets/montserrat-cyrillic-500-normal-CyGtXmN9.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-vietnamese-500-normal-NT-t8RG1.woff2)format("woff2"),url(/assets/montserrat-vietnamese-500-normal-DpeZlV_K.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-ext-500-normal-BKtbrd6n.woff2)format("woff2"),url(/assets/montserrat-latin-ext-500-normal-DWPqqZgs.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2)format("woff2"),url(/assets/montserrat-latin-500-normal-Dok2oTci.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-ext-600-normal-BtBW-rpm.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-600-normal-wReYPmz2.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-600-normal-CQEPC0hM.woff2)format("woff2"),url(/assets/montserrat-cyrillic-600-normal-DUglwBrH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-vietnamese-600-normal-DKe6qT_E.woff2)format("woff2"),url(/assets/montserrat-vietnamese-600-normal-SJ-HTWuM.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-ext-600-normal-DSkTqI9L.woff2)format("woff2"),url(/assets/montserrat-latin-ext-600-normal-CSDhkhgS.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2)format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-cyrillic-ext-700-normal-MyDreaeu.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-700-normal-D-Mk2xRJ.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-cyrillic-700-normal-D-Pqjtdp.woff2)format("woff2"),url(/assets/montserrat-cyrillic-700-normal-BvLYcGP1.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-vietnamese-700-normal-C0x1De3p.woff2)format("woff2"),url(/assets/montserrat-vietnamese-700-normal-DnwGT2D9.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-ext-700-normal-BOP2Nhf0.woff2)format("woff2"),url(/assets/montserrat-latin-ext-700-normal-DdDFr05Z.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2)format("woff2"),url(/assets/montserrat-latin-700-normal-BWkrl476.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/montserrat-cyrillic-ext-800-normal-GOAQXnVZ.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-800-normal-mB3PmEeV.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/montserrat-cyrillic-800-normal-DDmpGQGC.woff2)format("woff2"),url(/assets/montserrat-cyrillic-800-normal-B_mUCQ9O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/montserrat-vietnamese-800-normal-BDwqwvSG.woff2)format("woff2"),url(/assets/montserrat-vietnamese-800-normal-Chy8GRiB.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/montserrat-latin-ext-800-normal-BBvmbyWk.woff2)format("woff2"),url(/assets/montserrat-latin-ext-800-normal-Wjq_OapB.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/montserrat-latin-800-normal-axpkC1rd.woff2)format("woff2"),url(/assets/montserrat-latin-800-normal-C3dfDxXV.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/montserrat-cyrillic-ext-900-normal-ET-C-0fX.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-900-normal-CfuaLo5j.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/montserrat-cyrillic-900-normal-CrYcRZSi.woff2)format("woff2"),url(/assets/montserrat-cyrillic-900-normal-CGsoW8-j.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/montserrat-vietnamese-900-normal-DNvcOCEl.woff2)format("woff2"),url(/assets/montserrat-vietnamese-900-normal-Dz06HFPU.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/montserrat-latin-ext-900-normal-BTaqesvP.woff2)format("woff2"),url(/assets/montserrat-latin-ext-900-normal-DoASD5Eh.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:900;src:url(/assets/montserrat-latin-900-normal-B0TD3Qnu.woff2)format("woff2"),url(/assets/montserrat-latin-900-normal-BDWDmVut.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.demo{border:1px solid var(--border);background:var(--bg);border-radius:10px;height:130px;margin:14px 0 2px;position:relative;overflow:hidden}.demo *{animation-duration:4s;animation-timing-function:ease-in-out;animation-iteration-count:infinite}.d-card{border:1px solid var(--border);background:var(--surface);border-radius:6px;padding:3px;display:block;position:absolute;box-shadow:0 2px 6px #0000001f}.d-photo{background:var(--c,#4f8fd6);border-radius:3px;width:100%;height:100%;display:block}.d-cursor{z-index:5;filter:drop-shadow(0 1px 2px #0006);position:absolute;top:0;left:0}.d-badge{color:#fff;background:#14161ab8;border-radius:4px;place-items:center;width:16px;height:16px;display:grid;position:absolute}.d-pill{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;position:absolute}.d-tag{opacity:0;animation-name:d-tag;top:52px;left:205px}.d-bar{background:var(--border);border-radius:3px;height:20px;position:absolute;bottom:3px;left:3px;right:3px}.d-turns-on{animation-name:d-on}@keyframes d-tag{0%,50%{opacity:0;transform:translateY(4px)}55%,85%{opacity:1;transform:none}90%,to{opacity:0}}@keyframes d-on{0%,33%{color:#fff;background:#14161ab8}36%,92%{background:var(--accent);color:var(--on-accent)}to{color:#fff;background:#14161ab8}}.demo-reshuffle .d-card{width:56px;height:72px;top:12px}.d-r1{left:62px}.d-r2{left:124px}.d-r3{left:186px}.d-r1 .d-photo{animation-name:d-r1}.d-r2 .d-photo{animation-name:d-r2}.d-r3 .d-photo{animation-name:d-r3}.d-press{animation-name:d-press;bottom:10px;left:50%;transform:translate(-50%)}.demo-reshuffle .d-cursor{animation-name:d-cur-reshuffle}@keyframes d-r1{0%,38%{background:#e8875b}45%,92%{background:#6cbf7a}to{background:#e8875b}}@keyframes d-r2{0%,38%{background:#4f8fd6}45%,92%{background:#b77fd6}to{background:#4f8fd6}}@keyframes d-r3{0%,38%{background:#6cbf7a}45%,92%{background:#e8875b}to{background:#6cbf7a}}@keyframes d-press{0%,33%{background:var(--surface);color:var(--text)}36%,44%{background:var(--accent);color:var(--on-accent)}50%,to{background:var(--surface);color:var(--text)}}@keyframes d-cur-reshuffle{0%{transform:translate(260px,120px)}28%{transform:translate(148px,108px)}33%{transform:translate(148px,108px)scale(.82)}38%,60%{transform:translate(148px,108px)scale(1)}85%,to{transform:translate(260px,120px)}}.d-two{width:80px;height:112px;top:8px;left:110px}.d-two .d-photo{width:auto;height:auto;position:absolute;left:3px;right:3px}.d-top{--c:#e8875b;top:3px;bottom:58px}.d-bottom{--c:#4f8fd6;top:57px;bottom:3px}.d-with-bar .d-top{bottom:66px}.d-with-bar .d-bottom{top:49px;bottom:26px}.d-top-badge{top:7px;right:7px}.d-bottom-badge{top:53px;right:7px}.demo-photo-lock .d-top-badge{opacity:0;animation-name:d-on,d-appear}.d-changes{animation-name:d-change}.demo-photo-lock .d-cursor{animation-name:d-cur-photo-lock}@keyframes d-appear{0%,15%{opacity:0}22%,94%{opacity:1}to{opacity:0}}@keyframes d-change{0%,58%{background:#4f8fd6}64%,92%{background:#b77fd6}to{background:#4f8fd6}}@keyframes d-cur-photo-lock{0%{transform:translate(250px,115px)}28%{transform:translate(172px,21px)}33%{transform:translate(172px,21px)scale(.82)}38%,48%{transform:translate(172px,21px)scale(1)}60%,to{transform:translate(250px,115px)}}.d-bar-lock{top:2px;right:2px}.d-shows{opacity:0;animation-name:d-shows}.demo-design-lock .d-cursor{animation-name:d-cur-design-lock}@keyframes d-shows{0%,34%{opacity:0}37%,94%{opacity:1;background:var(--accent);color:var(--on-accent)}to{opacity:0}}@keyframes d-cur-design-lock{0%{transform:translate(250px,120px)}28%{transform:translate(174px,105px)}33%{transform:translate(174px,105px)scale(.82)}38%,48%{transform:translate(174px,105px)scale(1)}60%,to{transform:translate(250px,120px)}}.d-source{--c:#e8875b;width:70px;height:84px;top:24px;left:24px}.d-spread{top:7px;right:7px}.demo-try-all .d-t1,.demo-try-all .d-t2,.demo-try-all .d-t3{width:46px;height:62px;top:34px}.d-t1{left:122px}.d-t2{left:176px}.d-t3{left:230px}.d-t1 .d-photo{animation-name:d-t1}.d-t2 .d-photo{animation-name:d-t2}.d-t3 .d-photo{animation-name:d-t3}.demo-try-all .d-cursor{animation-name:d-cur-try-all}@keyframes d-t1{0%,38%{background:#4f8fd6}42%,92%{background:#e8875b}to{background:#4f8fd6}}@keyframes d-t2{0%,42%{background:#6cbf7a}46%,92%{background:#e8875b}to{background:#6cbf7a}}@keyframes d-t3{0%,46%{background:#b77fd6}50%,92%{background:#e8875b}to{background:#b77fd6}}@keyframes d-cur-try-all{0%{transform:translate(140px,120px)}28%{transform:translate(76px,37px)}33%{transform:translate(76px,37px)scale(.82)}38%,55%{transform:translate(76px,37px)scale(1)}75%,to{transform:translate(140px,120px)}}.d-from,.d-to{width:76px;height:96px;top:18px}.d-from{--c:#e8875b;left:40px}.d-to{animation-name:d-drop;left:184px}.d-to .d-photo{animation-name:d-dropped}.d-ghost{z-index:4;opacity:0;background:#e8875b;border-radius:4px;width:44px;height:56px;animation-name:d-ghost;position:absolute;top:0;left:0;box-shadow:0 6px 16px #0000004d}.demo-drag .d-cursor{animation-name:d-cur-drag}@keyframes d-drop{0%,40%{box-shadow:0 2px 6px #0000001f}45%,60%{box-shadow:0 0 0 2px var(--accent)}64%,to{box-shadow:0 2px 6px #0000001f}}@keyframes d-dropped{0%,60%{background:#4f8fd6}63%,92%{background:#e8875b}to{background:#4f8fd6}}@keyframes d-ghost{0%,18%{opacity:0;transform:translate(56px,38px)}22%{opacity:.85;transform:translate(56px,38px)}58%{opacity:.85;transform:translate(200px,38px)}62%,to{opacity:0;transform:translate(200px,38px)}}@keyframes d-cur-drag{0%{transform:translate(260px,120px)}16%{transform:translate(78px,66px)}20%{transform:translate(78px,66px)scale(.82)}58%{transform:translate(222px,66px)scale(.82)}62%{transform:translate(222px,66px)scale(1)}85%,to{transform:translate(260px,120px)}}.d-grow{width:76px;height:108px;animation-name:d-grow;top:10px;left:112px}.d-grow .d-photo{--c:#6cbf7a;width:auto;height:auto;position:absolute;inset:3px 3px 26px}.d-bar-pencil{top:2px;right:2px}.demo-pencil .d-cursor{animation-name:d-cur-pencil}@keyframes d-grow{0%,45%{transform:none;box-shadow:0 2px 6px #0000001f}58%,85%{box-shadow:0 0 0 2px var(--accent);transform:scale(1.1)}95%,to{transform:none;box-shadow:0 2px 6px #0000001f}}@keyframes d-cur-pencil{0%{transform:translate(250px,120px)}28%{transform:translate(172px,103px)}33%{transform:translate(172px,103px)scale(.82)}38%{transform:translate(172px,103px)scale(1)}50%,to{transform:translate(250px,120px)}}.d-frame{border:1px solid var(--border);border-radius:6px;width:150px;height:104px;position:absolute;top:12px;left:75px;overflow:hidden}.d-scene{background:linear-gradient(135deg,#4f8fd6,#6cbf7a);position:absolute;inset:-20px -40px}.d-subject{background:#e8875b;border-radius:50%;width:40px;height:40px;margin:-20px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 6px #ffffff59}.d-panning{animation-name:d-pan}.demo-pan .d-cursor{animation-name:d-cur-pan}.d-zooming{animation-name:d-zoom}.demo-zoom .d-cursor{transform:translate(150px,64px)}.d-zoom-in{opacity:0;animation-name:d-zoom-in;top:8px;left:8px}.d-zoom-out{opacity:0;animation-name:d-zoom-out;bottom:8px;right:8px}@keyframes d-pan{0%,10%{transform:translate(0)}35%,50%{transform:translate(-30px)}75%{transform:translate(30px)}90%,to{transform:translate(0)}}@keyframes d-cur-pan{0%,10%{transform:translate(150px,64px)}35%,50%{transform:translate(120px,64px)}75%{transform:translate(180px,64px)}90%,to{transform:translate(150px,64px)}}@keyframes d-zoom{0%,15%{transform:scale(1)}40%,55%{transform:scale(1.6)}80%,to{transform:scale(1)}}@keyframes d-zoom-in{0%,12%{opacity:0}18%,45%{opacity:1}50%,to{opacity:0}}@keyframes d-zoom-out{0%,55%{opacity:0}60%,85%{opacity:1}90%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.demo *{animation:none!important}.d-cursor{display:none}.d-tag,.d-shows,.demo-photo-lock .d-top-badge{opacity:1}}:root{--bg:#f4f5f7;--surface:#fff;--text:#16181d;--muted:#5d6470;--border:#dde1e7;--danger-bg:#fdecec;--danger:#a4161a;--radius:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#121418;--surface:#1c1f25;--text:#eceef2;--muted:#9aa1ad;--border:#2e333c;--danger-bg:#3a1618;--danger:#ff9b9b}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:Montserrat,system-ui,sans-serif;font-size:15px}button,input{font:inherit;color:inherit}.app{max-width:1280px;margin:0 auto;padding:24px 16px 64px}.topbar{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:20px;display:flex}.topbar h1{margin:0;font-size:24px;font-weight:800}.muted{color:var(--muted)}.controls{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;align-items:flex-end;gap:16px 24px;margin-bottom:16px;padding:16px;display:flex}.field{flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:relative}.field-grow{flex:280px}.label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);width:100%;font-size:12px;font-weight:700}.field input[type=text]{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex:1;min-width:0;padding:10px 12px}.field input[type=text]:focus{outline:2px solid var(--accent);outline-offset:1px}.counter{font-size:12px}.segmented{border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;display:inline-flex;overflow:hidden}.segmented button{cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:8px 12px;font-weight:600;display:inline-flex}.segmented button+button{border-left:1px solid var(--border)}.segmented button.is-active{background:var(--accent);color:var(--on-accent)}.swatch{border-radius:50%;width:10px;height:10px;box-shadow:0 0 0 1px #fff9}.actions{gap:8px;margin-left:auto;display:flex}.btn{background:var(--accent);color:var(--on-accent);cursor:pointer;border:0;border-radius:8px;padding:10px 16px;font-weight:700}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn-small{padding:6px 12px;font-size:13px}.icon-btn{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;place-items:center;width:36px;height:36px;display:inline-grid;position:relative}.icon-btn.is-active{background:var(--accent);color:var(--on-accent);border-color:#0000}.badge{background:var(--accent);min-width:18px;height:18px;color:var(--on-accent);border-radius:9px;padding:0 4px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-6px;right:-6px}.link-btn{color:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.notice{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0 0 16px;padding:12px 16px}.notice-error{background:var(--danger-bg);color:var(--danger);border-color:#0000}.loading{margin:0 0 16px}.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:20px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin:0;overflow:hidden}.card-frame{background:#2a2e35;position:relative;overflow:hidden}.card-bar{align-items:center;gap:8px;padding:10px 12px;display:flex}.card-name{flex:1;font-size:14px;font-weight:600}.overlay{z-index:10;background:#00000073;justify-content:flex-end;display:flex;position:fixed;inset:0}.panel{background:var(--surface);flex-direction:column;gap:12px;width:min(420px,100%);height:100%;padding:20px;display:flex;overflow-y:auto}.panel-head{justify-content:space-between;align-items:center;display:flex}.panel-head h2{margin:0;font-size:18px}.panel-actions{gap:16px;display:flex}.folder-list{flex-direction:column;flex:1;gap:6px;margin:0;padding:0;list-style:none;display:flex}.folder-list label{cursor:pointer;align-items:center;gap:8px;display:flex}.folder-count{white-space:nowrap;font-size:13px}.folder-list label.is-album .folder-name{font-weight:400}.folder-list label.is-album .folder-count{font-size:12px}.folder-row{align-items:center;gap:2px;display:flex}.chevron,.chevron-spacer{flex:none;width:22px;height:22px}.chevron{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;font-size:18px;line-height:1;transition:transform .12s;display:inline-grid}.chevron:hover{color:var(--text);background:var(--bg)}.chevron.is-open{transform:rotate(90deg)}.folder-list input{accent-color:var(--accent);width:16px;height:16px}.panel-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding-top:12px;display:flex}.notice-row{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.notice-row>span{flex:1}.slot{outline-offset:-2px;position:absolute}.slot[draggable=true]{cursor:grab}.slot.is-drop-target{outline:3px dashed var(--accent);background:#ffffff2e}.slot-tools{opacity:0;gap:4px;transition:opacity .12s;display:flex;position:absolute;top:6px;right:6px}.slot:hover .slot-tools,.slot:focus-within .slot-tools,.slot.is-locked .slot-tools{opacity:1}.slot.is-locked:not(:hover):not(:focus-within) .slot-btn:not(.is-active){display:none}@media (hover:none){.slot-tools{opacity:1}}.slot-btn{color:#fff;cursor:pointer;background:#14161ab8;border:0;border-radius:6px;place-items:center;width:28px;height:28px;display:inline-grid}.slot-btn:hover{background:#14161ae6}.slot-btn.is-active{background:var(--accent);color:var(--on-accent)}.editor{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:24px;display:grid}.editor-single{grid-template-columns:minmax(0,560px) minmax(0,360px);justify-content:center}.editor-single .editor-panel{display:contents}.editor-panel{flex-direction:column;gap:16px;display:flex}.editor-preview{border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}.slot-edit{cursor:move;touch-action:none}.slot-edit:focus-visible,.slot-edit.is-active{outline:2px solid var(--accent)}.editor-controls{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;align-self:start;gap:14px;padding:16px;display:flex}.editor-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.editor-head h2{margin:0;font-size:17px}.hint{margin:0;font-size:13px}.slider{flex-direction:column;gap:6px;display:flex}.slider-label{justify-content:space-between;align-items:baseline;display:flex}.slider-label .label{width:auto}.slider input[type=range]{width:100%;accent-color:var(--accent)}.editor-buttons{flex-wrap:wrap;gap:8px;display:flex}.icon-label{align-items:center;gap:6px;display:inline-flex}@media (width<=760px){.editor-single{grid-template-columns:minmax(0,1fr)}}.history-btn{width:40px;height:40px}.history-btn:disabled{opacity:.4;cursor:not-allowed}.source{background:var(--bg);overflow-wrap:anywhere;border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;font-size:14px;display:flex}.source-path{font-weight:600}.source-file{font-size:13px}.source-link{color:inherit;font-size:13px;font-weight:700}.help-btn{margin-left:auto;font-size:16px;font-weight:800}.history{gap:8px;display:inline-flex}.tour{z-index:80;position:fixed;inset:0}.tour-dim{background:#000000ad;position:absolute;inset:0}.tour-hole{pointer-events:none;border-radius:12px;transition:top .25s,left .25s,width .25s,height .25s;position:absolute;box-shadow:0 0 0 2px #fff,0 0 0 9999px #000000ad}.tour-card{background:var(--surface);color:var(--text);border-radius:12px;outline:none;padding:18px 18px 14px;position:absolute;box-shadow:0 18px 50px #00000059}.tour-card h2{margin:0 28px 6px 0;font-size:17px}.tour-card p{margin:0;line-height:1.45}.tour-close{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:15px;position:absolute;top:10px;right:10px}.tour-foot{align-items:center;gap:12px;margin-top:16px;font-size:13px;display:flex}.tour-spacer{flex:1}body.tour-show-tools .slot-tools{opacity:1}@media (prefers-reduced-motion:reduce){.tour-hole{transition:none}}.editor-sliders{flex-direction:column;gap:14px;display:flex}.icon-btn.is-primary{background:var(--accent);color:var(--on-accent);border-color:#0000}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn.is-busy{opacity:1;cursor:progress;animation:.9s ease-in-out infinite alternate busy-pulse}@keyframes busy-pulse{to{opacity:.45}}@media (prefers-reduced-motion:reduce){.icon-btn.is-busy{animation:none}}.btn.is-disabled,.icon-btn.is-disabled{opacity:.45;cursor:help}.needs-title input[type=text]{outline:2px solid var(--danger);outline-offset:1px}.field-hint{width:100%;color:var(--danger);font-size:13px;font-weight:600;animation:.35s ease-in-out hint-shake}@keyframes hint-shake{20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.photo-skeleton{background:#3a3f47 linear-gradient(100deg,#0000 30%,#ffffff17 50%,#0000 70%) 0 0/200% 100%}.photo-skeleton.is-loading,.app.pool-loading .photo-skeleton.is-empty{animation:1.4s linear infinite shimmer}@keyframes shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}@media (prefers-reduced-motion:reduce){.field-hint,.photo-skeleton.is-loading,.app.pool-loading .photo-skeleton.is-empty{animation:none}}.app-footer{text-align:center;margin-top:40px;font-size:12px}
