@font-face{font-family:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-ext-wght-normal-BOFOeGcA.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:DM Sans Variable;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/assets/dm-sans-latin-wght-normal-Xz1IZZA0.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-full-normal-7BpKI3vF.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-full-normal-YHFkNujK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-full-normal-CFFu7zhK.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{font-family:DM Sans Variable,Arial,sans-serif;color:#222a25;background:#f7f6f1;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}a{color:inherit}h1,h2,p{margin-top:0}h1,h2{font-family:Fraunces Variable,Georgia,serif;font-weight:600;letter-spacing:-.035em}h1{font-size:clamp(2.6rem,4vw,4rem);line-height:1.08}h2{font-size:1.55rem;line-height:1.1}small{font-size:.77rem}.eyebrow{font-size:.69rem;letter-spacing:.16em;font-weight:700;color:#7e897b}.app-shell{display:flex;min-height:100vh}.sidebar{width:260px;flex:0 0 260px;background:#fcfbf7;border-right:1px solid #e8e9df;display:flex;flex-direction:column;padding:26px 16px 20px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:0 12px;margin-bottom:56px}.brand-icon,.login-mark{height:37px;width:37px;display:grid;place-items:center;background:#314e42;color:#fff;border-radius:11px;font-family:Fraunces Variable,serif;font-size:26px;position:relative}.brand-icon span,.login-mark span{color:#efb965;font-size:14px;position:absolute;right:4px;top:2px}.brand b{display:block;font-family:Fraunces Variable,serif;font-size:1.25rem;line-height:1.05}.brand small{font-weight:700;letter-spacing:.1em;color:#92998d;font-size:.54rem}.side-label{font-size:.65rem;letter-spacing:.15em;color:#959c91;font-weight:700;padding:0 13px;margin-bottom:14px}.frame-nav{display:grid;gap:5px}.frame-nav button{border:0;background:transparent;width:100%;padding:10px 11px;border-radius:13px;display:flex;align-items:center;text-align:left;gap:10px}.frame-nav button.active{background:#e9eee6}.frame-nav button:hover:not(.active){background:#f2f3ec}.nav-thumb{width:35px;height:35px;border:1px solid #dce1d8;border-radius:8px;background:#f8f5e7;overflow:hidden;display:grid;place-items:center;color:#859487;flex:0 0 35px}.nav-thumb img{width:100%;height:100%;object-fit:cover}.nav-text{flex:1;min-width:0}.nav-text b,.nav-text small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-text b{font-size:.81rem}.nav-text small{font-size:.66rem;color:#8b958c;margin-top:2px}.status-dot{width:6px;height:6px;background:#b9c0b6;border-radius:50%}.status-dot.ok{background:#70a582}.add-frame{margin:19px 11px 0;display:flex;gap:7px;align-items:center;background:none;border:0;color:#597561;font-size:.78rem;font-weight:700}.sidebar-bottom{margin-top:auto;border-top:1px solid #e9ebe2;padding:21px 8px 0;display:flex;align-items:center;gap:10px}.avatar,.top-avatar{width:33px;height:33px;border-radius:50%;background:#e8d7bb;display:grid;place-items:center;font-weight:700;color:#775b3b}.sidebar-bottom>div:nth-child(2){flex:1;min-width:0}.sidebar-bottom b,.sidebar-bottom small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-bottom b{font-size:.77rem}.sidebar-bottom small{font-size:.66rem;color:#92998e}.sidebar-bottom button{border:0;background:none;color:#818e82;padding:4px}.content{min-width:0;flex:1;padding:0 clamp(24px,4.8vw,74px) 70px;max-width:1800px;margin:0 auto}.topbar{height:80px;border-bottom:1px solid #e8e9e1;display:flex;justify-content:space-between;align-items:center;font-size:.76rem;font-weight:700;color:#64756a}.crumb{color:#9ba399;letter-spacing:.08em;font-size:.66rem}.slash{color:#c4cac0;margin:0 14px}.top-right{display:flex;align-items:center;gap:18px}.private{display:flex;align-items:center;gap:6px;color:#667d6b}.top-avatar{width:29px;height:29px;font-size:.7rem}.page-heading{padding:47px 0 30px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px}.page-heading .eyebrow,.page-heading h1{margin-bottom:13px}.heading-spark{font-family:Arial,sans-serif;color:#d99c5d;font-size:.5em;vertical-align:top;margin-left:11px}.subtitle{color:#819084;font-size:.9rem;margin:0}.connection{border:1px solid #e5e8df;border-radius:12px;padding:12px 15px 10px;background:#fff;white-space:nowrap;color:#879187;font-size:.72rem;font-weight:700;min-width:180px}.connection .pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:#afb8aa;margin-right:6px}.connection.connected .pulse{background:#67a77c;box-shadow:0 0 0 4px #e4f2e6}.connection small{display:block;font-weight:400;color:#a0a99f;margin:3px 0 0 13px}.primary-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(265px,.85fr);gap:24px}.preview-panel,.quick-card,.settings-card{background:#fff;border:1px solid #ebede5;border-radius:18px}.preview-panel{padding:21px 24px 17px}.panel-title{display:flex;justify-content:space-between;align-items:center;font-size:.67rem;letter-spacing:.13em;font-weight:700;color:#7c897d}.live-tag{display:flex;gap:5px;align-items:center;color:#9da89e;font-size:.59rem}.frame-object{margin:20px auto 12px;max-width:600px;aspect-ratio:1.27;background:#1d2421;border-radius:14px;box-shadow:0 15px 25px #27352b24,0 3px 5px #25332924;padding:26px 25px 14px;display:flex;flex-direction:column}.screen{background:#f4f0df;box-shadow:inset 0 0 4px #0006;flex:1;min-height:0;overflow:hidden}.screen img{display:block;width:100%;height:100%;object-fit:fill;image-rendering:auto}.screen-empty{height:100%;display:flex;flex-direction:column;gap:13px;align-items:center;justify-content:center;color:#aeaa97;font-size:.83rem}.frame-label{height:19px;align-self:flex-end;display:flex;align-items:end;font-size:.45rem;letter-spacing:.15em;color:#a6a9a3;font-weight:700}.preview-meta{border-top:1px solid #eef0e9;padding-top:16px;display:flex;justify-content:space-between;gap:15px;align-items:center;min-height:64px}.preview-meta b,.preview-meta small{display:block}.preview-meta b{font-size:.84rem}.preview-meta small{color:#9aa49b;font-size:.7rem;margin-top:4px}.preview-meta p{margin:0;color:#9aa49b;font-size:.8rem}.image-count{font-size:.68rem;color:#96a299;white-space:nowrap}.right-column{display:grid;gap:15px}.quick-card{padding:23px}.quick-card.mint{background:#e4eee5;border-color:#e4eee5;position:relative;overflow:hidden}.mint:after{content:"✳";font-size:110px;position:absolute;color:#d4e4d5;right:-12px;top:-20px;line-height:1}.mint>*{position:relative;z-index:1}.section-icon,.circle-icon{width:38px;height:38px;border-radius:11px;background:#d0e2d2;color:#426a4e;display:grid;place-items:center;margin-bottom:19px}.mint .eyebrow{color:#77977d;margin-bottom:8px}.mint h2{margin-bottom:8px}.quick-card p{color:#829087;font-size:.76rem;line-height:1.45;margin-bottom:17px}.mint p:not(.eyebrow){max-width:230px;color:#6e8475}.button{border:0;border-radius:9px;background:#e9eee8;color:#3d6047;font-size:.76rem;font-weight:700;padding:10px 13px;display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;transition:transform .15s,background .15s}.button:hover{transform:translateY(-1px)}.button.dark{background:#2c4d3c;color:#fff}.button.dark:hover{background:#203f2f}.button.small{padding:9px 14px}.button.wide{width:100%;margin-top:18px}.stats-row{display:flex;align-items:start;justify-content:space-between;color:#788d7e}.stats-row small{display:block;color:#9ba79b;letter-spacing:.1em;font-size:.63rem;font-weight:700}.stats-row strong{display:block;font-family:Fraunces Variable,serif;font-size:1.7rem;line-height:1.2;color:#26362c;margin-top:7px}.stats-row .circle-icon{margin:0;border-radius:50%;width:36px;height:36px;background:#f5f0e5;color:#a69471}.stats-card .progress{height:6px;border-radius:9px;background:#e9ede5;overflow:hidden;margin:18px 0 11px}.progress span{display:block;background:#8aad8f;height:100%;min-width:2px}.stats-card p{margin:0;font-size:.69rem}.device-card .stats-row strong{font-size:1.3rem}.device-card p{margin:12px 0}.text-button{background:none;border:0;padding:0;color:#3e7652;display:inline-flex;align-items:center;gap:5px;font-weight:700;font-size:.74rem}.text-button.danger{color:#ba6e63}.gallery-section{margin-top:50px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:19px}.section-heading .eyebrow{margin-bottom:9px}.section-heading h2{font-size:1.75rem;margin:0}.section-heading h2 span{font-family:DM Sans Variable,sans-serif;font-size:.7rem;vertical-align:middle;border-radius:50%;background:#e6eee5;color:#64826c;padding:5px 8px;margin-left:7px;letter-spacing:0}.section-heading>p{font-size:.77rem;color:#96a197;margin:0}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.photo-card{background:#fff;border:1px solid #e9ede6;border-radius:13px;overflow:hidden}.photo-card.is-current{border-color:#a9c4ad;box-shadow:0 0 0 2px #e5f0e6}.photo{aspect-ratio:4/3;background:#eee9d8;position:relative}.photo img{width:100%;height:100%;object-fit:cover}.current-badge{position:absolute;top:11px;left:11px;background:#345b43;color:#fff;display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:6px;font-size:.59rem;font-weight:700;letter-spacing:.05em}.photo-info{padding:13px 14px}.photo-info>b,.photo-info>small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.photo-info>b{font-size:.79rem}.photo-info>small{font-size:.68rem;color:#9aa59a;margin-top:4px}.photo-actions{display:flex;align-items:center;gap:10px;border-top:1px solid #eff1e9;margin-top:13px;padding-top:10px;min-height:25px}.photo-actions button{background:none;border:0;padding:0;color:#4f795a;font-weight:700;font-size:.68rem}.photo-actions a{margin-left:auto;display:flex;color:#879c8c}.photo-actions .icon-danger{color:#ba8c86}.gallery-empty{border:1px dashed #dce4d9;border-radius:16px;text-align:center;padding:50px;color:#a2aea3;display:flex;align-items:center;flex-direction:column;gap:9px}.gallery-empty b{color:#536b59}.gallery-empty p{font-size:.8rem;margin:0}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:49px}.settings-card{padding:24px}.settings-heading{display:flex;align-items:center;gap:9px;color:#5e8068}.settings-heading h2{font-size:1.25rem;margin:0;color:#25342a}.settings-intro{font-size:.77rem;color:#92a096;line-height:1.45;margin:10px 0 22px}.settings-card label{display:block;font-size:.73rem;font-weight:700;margin-bottom:8px}.setting-row{display:flex;align-items:center;gap:9px}.setting-row input{flex:1;min-width:0;border:1px solid #e2e8dc;padding:10px 12px;border-radius:8px;font-size:.77rem;background:#fcfdf9}.setting-hint{display:block;color:#a0aa9e;margin-top:9px}.settings-card .divider{height:1px;background:#eef0e9;margin:24px 0}.setting-row.last{justify-content:space-between}.setting-row.last b,.setting-row.last small{display:block}.setting-row.last b{font-size:.77rem}.setting-row.last small{margin-top:4px;color:#a0aa9e}.people-list>div{display:flex;align-items:center;gap:10px;border-top:1px solid #eef1e9;padding:12px 0}.person-avatar{width:30px;height:30px;border-radius:50%;background:#eef2e7;color:#6b866d;display:grid;place-items:center;font-size:.7rem;font-weight:700}.people-list>div>div{flex:1}.people-list b,.people-list small{display:block}.people-list b{font-size:.77rem}.people-list small{color:#a0aa9e;margin-top:3px}.people-list button{border:0;background:none;color:#b48d88}.muted{font-size:.77rem;color:#a0aa9e}.pending{border-top:1px solid #eef1e9;padding-top:14px;font-size:.7rem;color:#8f9c90}.pending small{font-weight:700}.pending>div{display:flex;justify-content:space-between;padding-top:10px}.pending button{border:0;background:none;color:#b36d60;font-size:.7rem}.notice{padding:10px 14px;background:#fff3dd;color:#875e2c;font-size:.79rem;border-radius:9px;margin-top:18px;display:flex;justify-content:space-between;align-items:center}.notice button{border:0;background:none;font-size:1.2rem;color:inherit}.modal-backdrop{position:fixed;inset:0;background:#1b2c21a8;z-index:20;display:grid;place-items:center;padding:20px}.modal{background:#fcfbf7;border-radius:18px;max-width:430px;width:100%;padding:31px;box-shadow:0 30px 70px #101f1866}.modal-icon{width:44px;height:44px;border-radius:12px;background:#e2ede2;color:#3a6d4b;display:grid;place-items:center;margin-bottom:20px}.modal .eyebrow{margin-bottom:8px}.modal h2{font-size:1.8rem;margin-bottom:10px}.modal p:not(.eyebrow){font-size:.8rem;line-height:1.5;color:#889689}.modal label{display:block;font-size:.76rem;font-weight:700;margin-top:16px}.modal input,.modal select{width:100%;border:1px solid #dde5da;border-radius:8px;padding:11px;margin-top:6px;background:#fff}.copy-box{display:flex;align-items:center;border:1px solid #dfe7db;border-radius:9px;background:#fff;margin-top:22px}.copy-box code{padding:12px;flex:1;overflow-wrap:anywhere;font-size:.75rem}.copy-box button{border:0;background:#e8f0e6;height:42px;padding:0 14px;color:#467554}.empty-home{text-align:center;max-width:500px;margin:12vh auto}.empty-art{width:140px;height:110px;background:#e9efe6;display:grid;place-items:center;color:#7c9d80;margin:0 auto 25px;border-radius:20px;transform:rotate(-4deg)}.empty-home h1{font-size:2.8rem;margin:10px}.empty-home>p:not(.eyebrow){color:#8c9b8e;font-size:.87rem}.loading,.boot{padding:70px;text-align:center;color:#7d927f}.spin{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login{min-height:100vh;background:#e7eee6;display:flex;align-items:center;justify-content:center;padding:30px;position:relative}.login-mark{position:absolute;top:32px;left:38px;width:45px;height:45px}.login-card{max-width:560px;padding:52px;background:#fcfbf6;border-radius:23px;box-shadow:0 24px 70px #5164531e}.login-card h1{margin:0 0 20px}.login-card em{font-style:normal;color:#638b6c}.login-card>p:not(.eyebrow):not(.fine){line-height:1.5;color:#829184;max-width:330px}.login-card .button{margin-top:20px;padding:13px 20px}.login-card .fine{font-size:.7rem;color:#a2ada1;margin:23px 0 0}.login-footer{position:absolute;bottom:27px;color:#a1b1a0;font-size:.67rem;font-weight:700;letter-spacing:.13em}@media(max-width:1100px){.sidebar{width:215px;flex-basis:215px}.content{padding:0 30px 55px}.primary-grid{grid-template-columns:minmax(0,1.5fr) minmax(245px,.8fr)}.frame-object{padding:19px 19px 10px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.app-shell{display:block}.sidebar{width:100%;height:auto;position:static;display:block;padding:14px 18px;border-right:0;border-bottom:1px solid #e8e9df}.brand{display:inline-flex;margin:0 16px 0 0;padding:0}.side-label,.sidebar-bottom{display:none}.frame-nav{display:inline-flex;max-width:calc(100% - 160px);overflow-x:auto;vertical-align:middle}.frame-nav button{min-width:155px;padding:5px 8px}.nav-thumb{width:27px;height:27px;flex-basis:27px}.nav-text small,.status-dot{display:none}.add-frame{display:inline-flex;margin:0 0 0 6px;padding:8px;font-size:0;vertical-align:middle}.content{padding:0 18px 50px}.topbar{height:55px}.page-heading{padding:31px 0 23px}.primary-grid{grid-template-columns:1fr}.right-column{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-card{padding:18px}.quick-card.mint{grid-column:span 1}.quick-card p{font-size:.7rem}.stats-row strong{font-size:1.25rem}.gallery-section{margin-top:38px}.settings-grid{margin-top:35px}}@media(max-width:610px){.brand b,.brand small{display:none}.brand{margin-right:5px}.frame-nav{max-width:calc(100% - 100px)}.frame-nav button{min-width:120px}.nav-text b{font-size:.72rem}.topbar .private{display:none}.page-heading{display:block}.page-heading h1{font-size:2.65rem}.connection{display:inline-block;margin-top:18px}.primary-grid{gap:14px}.preview-panel{padding:16px}.frame-object{padding:16px 16px 9px}.panel-title{font-size:.58rem}.live-tag{font-size:.51rem}.right-column{grid-template-columns:1fr 1fr}.mint{grid-column:span 2!important}.quick-card{padding:17px}.quick-card.mint{display:grid;grid-template-columns:1fr auto;column-gap:12px}.mint .section-icon{grid-row:span 3;margin:0;grid-column:2}.mint p{margin-bottom:12px}.mint .button{justify-self:start}.gallery-grid{grid-template-columns:1fr 1fr;gap:10px}.photo-info{padding:10px}.photo-info>b{font-size:.72rem}.photo-info>small{font-size:.59rem}.photo-actions{gap:6px}.photo-actions button{font-size:.6rem}.settings-grid{grid-template-columns:1fr}.section-heading{display:block}.section-heading>p{margin-top:9px}.modal{padding:22px}.login-card{padding:34px 27px}.login-card h1{font-size:2.7rem}}@media(max-width:390px){.gallery-grid,.right-column{grid-template-columns:1fr}.mint{grid-column:1!important}.preview-meta{align-items:start}.image-count{display:none}}.unclaimed{margin-top:31px}.unclaimed .side-label{margin-bottom:7px}.unclaimed button{background:none;border:0;color:#688370;padding:8px 12px;display:flex;align-items:center;gap:9px;font-size:.76rem;font-weight:700;text-align:left}
