/* Studio v3: public polish + reliable admin UI */
.brand-logo{width:var(--brand-logo-size,14px);height:var(--brand-logo-size,14px)}
.text-link,.links button{appearance:none;border:0;background:transparent;color:inherit;padding:0;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer}
.text-link:hover,.links button:hover{color:var(--text)}
body{position:relative;min-height:100vh}
body::before{content:'';position:fixed;inset:0;z-index:-2;pointer-events:none;background-image:var(--site-bg-gradient,none),var(--site-bg-image,none);background-size:auto,var(--site-bg-image-size,cover);background-position:center,var(--site-bg-image-position,center);background-repeat:no-repeat;opacity:var(--site-bg-image-opacity,0)}
body::after{content:'';position:fixed;inset:0;z-index:-3;background:var(--bg);pointer-events:none}
.hero-stage.image-loading::after,.tile.image-loading::after{content:'';position:absolute;inset:0;z-index:6;pointer-events:none;background:linear-gradient(110deg,transparent 34%,color-mix(in srgb,var(--text) 10%,transparent) 48%,transparent 62%);background-size:220% 100%;animation:imageShimmer 1.25s linear infinite}
.hero-stage.image-loading::after{z-index:5}.tile.image-loading img,.hero-stage.image-loading .hero-main{opacity:.7}.hero-main{transition:opacity .3s ease}
.hero-stage[data-node]{cursor:default}.editing .hero-stage[data-node]{cursor:pointer}
.tile[data-hover='lift']:hover{transform:translate(var(--x),calc(var(--y) - var(--hoverLift,7px)))}
.tile[data-hover='zoom']:hover img{transform:scale(calc(var(--imgScale) * var(--hoverScale,1.05)))}
.tile[data-hover='tilt']{will-change:transform}
.links button{text-transform:uppercase;letter-spacing:.14em;font-size:9px}
.login-error{min-height:18px;font-size:9px;color:#ff8b78;margin:4px 0 8px}
.login-box button{height:34px;padding:0 12px;border-radius:5px;border:1px solid rgba(255,255,255,.13);background:#1b1f1b;color:white;cursor:pointer}.login-box [data-login]{background:var(--accent);color:#111;border-color:transparent}
.redirect-modal:not(.open),.modal:not(.open),.login:not(.open){display:none!important}
.redirect-modal.open{display:grid!important;z-index:500!important}.login.open{display:grid!important;z-index:520!important}
.redirect-box .eyebrow{margin-bottom:8px}.redirect-actions .ui-btn{min-width:72px}
.project-modal{background:rgba(7,8,7,.90)!important;backdrop-filter:blur(18px);overflow:hidden!important}
.project-modal.open{display:block!important;z-index:420!important}
.project-modal .close{position:fixed;top:18px;right:18px;z-index:440;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(10,12,10,.72);color:white;cursor:pointer;backdrop-filter:blur(10px)}
.project-modal .stream{width:min(1240px,calc(100vw - 150px));height:100vh;margin:0 auto;padding:72px 0 110px;display:block;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y proximity;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22) transparent}
.project-media{margin:0 0 18px;scroll-snap-align:center;background:#0a0c0a;border-radius:4px;overflow:hidden;min-height:36px}
.project-media img,.project-media video{display:block;width:100%;height:auto;max-height:none;background:#0a0c0a;object-fit:contain}
.project-media figcaption{padding:10px 2px 2px;color:rgba(255,255,255,.56);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.project-nav{position:fixed;top:50%;z-index:440;width:48px;height:64px;display:none;place-items:center;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:rgba(11,13,11,.64);color:white;font-size:34px;line-height:1;cursor:pointer;transform:translateY(-50%);backdrop-filter:blur(12px);transition:background .16s,transform .16s}
.project-nav.show{display:grid}.project-nav:hover{background:rgba(25,29,25,.9)}.project-prev{left:24px}.project-next{right:24px}.project-count{position:fixed;left:50%;bottom:24px;z-index:440;transform:translateX(-50%);padding:7px 10px;border-radius:999px;background:rgba(11,13,11,.68);border:1px solid rgba(255,255,255,.12);color:rgba(255,255,255,.72);font-size:9px;letter-spacing:.12em;backdrop-filter:blur(10px)}
.inspect-scroll [hidden]{display:none!important}.ctrl.stack{display:block}.ctrl.stack>label{display:block;margin-bottom:6px}.ctrl textarea{width:100%;min-height:64px;resize:vertical;background:#0d0f0d;color:white;border:0;border-bottom:1px solid rgba(255,255,255,.24);padding:5px;font-size:9px}
.editor-note{font-size:8px;line-height:1.55;color:#7d877d;margin:8px 0}.panel .action-row{display:flex;gap:6px;margin-top:9px}.panel .action-row button{flex:1}.panel .danger-lite{background:transparent;border-color:rgba(255,255,255,.09);color:#a4aca4}
.font-pair[data-pair='editorial'] b{font-family:'Instrument Serif',Georgia,serif}.font-pair[data-pair='modern'] b{font-family:'DM Serif Display',Georgia,serif}.font-pair[data-pair='tech'] b{font-family:'Space Grotesk',Arial,sans-serif}
.url-inline{display:grid;grid-template-columns:1fr 34px;gap:6px}.url-inline button{height:29px!important}.section-chip{display:inline-flex;align-items:center;gap:6px;font-size:8px;color:#7c857c}.section-chip::before{content:'';width:5px;height:5px;background:var(--accent);transform:rotate(45deg)}
.editing .devbar{height:56px!important;padding:0 14px!important;background:rgba(14,16,14,.96)!important;box-shadow:0 8px 30px rgba(0,0,0,.22)}
.editing .layers{background:#0d0f0d!important;padding:66px 8px 16px!important}
.editing .inspector{background:#0d0f0d!important;padding-top:56px!important}
.inspect-head{height:58px!important;padding:0 14px!important;background:#101310;border-bottom:1px solid rgba(255,255,255,.08)}
.inspect-tabs{position:sticky;top:0;z-index:3;background:#0d0f0d}.inspect-tab{height:40px!important;font-weight:700!important}.inspect-tab.active{box-shadow:inset 0 -2px var(--accent)}
.inspect-scroll{padding:10px 10px 120px!important}.panel{background:#121512!important;border:1px solid rgba(255,255,255,.075)!important;border-radius:9px!important;padding:11px!important;box-shadow:0 1px 0 rgba(255,255,255,.02)}
.panel h4{font-size:8px!important;letter-spacing:.16em!important;color:#9aa49a!important;margin-bottom:11px!important}.ctrl{grid-template-columns:minmax(88px,1fr) minmax(120px,156px)!important;gap:10px!important}.ctrl label{color:#c3cbc3!important}.ctrl input[type='text'],.ctrl input[type='url'],.ctrl input[type='number'],.ctrl select{background:#0b0d0b!important;border-bottom-color:rgba(255,255,255,.18)!important;height:30px!important}.ctrl input:focus,.ctrl select:focus{border-bottom-color:var(--accent)!important;box-shadow:0 1px 0 var(--accent)}
.ctrl input[type='range']{height:4px;accent-color:var(--accent)}.check{padding:2px 0}.file-btn{min-height:34px!important;background:#0c0e0c}.savebar{padding:9px!important;background:#0c0e0c!important}.savebar button{border-radius:7px!important}.savebar .publish{font-weight:800!important}
.layer-tools{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:0 6px 10px}.layer-tools button{height:30px;border-radius:6px;border:1px solid rgba(255,255,255,.09);background:#151815;color:#d6ddd6;font-size:8px;cursor:pointer}.layer-tools [data-add-tile]{grid-column:1/-1;background:color-mix(in srgb,var(--accent) 18%,#151815)}
.layer{border:1px solid transparent}.layer.active{border-color:color-mix(in srgb,var(--accent) 28%,transparent);background:#1b2119!important}
.media-list{display:flex;flex-direction:column;gap:5px;margin:9px 0}.media-empty{padding:10px;border:1px dashed rgba(255,255,255,.10);border-radius:6px;color:#727b72;font-size:8px}.media-row{display:grid;grid-template-columns:20px 1fr 27px;gap:6px;align-items:center;padding:6px;border-radius:6px;background:#0b0d0b;border:1px solid rgba(255,255,255,.06)}.media-row span{font-size:8px;color:var(--accent)}.media-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#949d94;font-size:8px}.media-row button{height:25px!important;padding:0!important;background:transparent!important;color:#a8b0a8!important}
.editing [data-node]:hover{outline:1px dashed color-mix(in srgb,var(--accent) 70%,transparent)!important;outline-offset:3px}.editing .selected{outline:2px solid var(--accent)!important;outline-offset:3px!important}
body:not(.editing) [data-node]{outline:none!important}
@keyframes imageShimmer{0%{background-position:120% 0}100%{background-position:-120% 0}}
@media(max-width:980px){.footer{gap:25px;align-items:flex-end}.links{flex-wrap:wrap;justify-content:flex-end}.hero-caption{font-size:8px}.project-modal .stream{width:calc(100vw - 28px);padding:66px 0 90px}.project-prev{left:8px}.project-next{right:8px}.project-nav{width:38px;height:54px;font-size:28px}}