@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/inter-latin-400-normal-C38fXH4l.woff2) format("woff2"),url(/assets/inter-latin-400-normal-CyCys3Eg.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2) format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff) format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/inter-latin-600-normal-LgqL8muc.woff2) format("woff2"),url(/assets/inter-latin-600-normal-CiBQ2DWP.woff) format("woff")}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jost-latin-400-normal-q-RKOgPK.woff2) format("woff2"),url(/assets/jost-latin-400-normal-C7S-3Ky6.woff) format("woff")}@font-face{font-family:Jost;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jost-latin-500-normal-41lBe9I9.woff2) format("woff2"),url(/assets/jost-latin-500-normal-B-AtzreL.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/manrope-latin-400-normal-PaqtzbVb.woff2) format("woff2"),url(/assets/manrope-latin-400-normal-8tf8FM3T.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/manrope-latin-500-normal-BYYD-dBL.woff2) format("woff2"),url(/assets/manrope-latin-500-normal-DMZssgOp.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/manrope-latin-600-normal-4f0koTD-.woff2) format("woff2"),url(/assets/manrope-latin-600-normal-BqgrALkZ.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/cormorant-garamond-latin-400-normal-B-1hWBU7.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-400-normal-B7YtguxJ.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.woff) format("woff")}@font-face{font-family:Cormorant Garamond;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-italic-Y14P-dkT.woff2) format("woff2"),url(/assets/cormorant-garamond-latin-500-italic-DhNIfkTX.woff) format("woff")}@font-face{font-family:Bodoni Moda;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/bodoni-moda-latin-400-normal-CIWtV3SY.woff2) format("woff2"),url(/assets/bodoni-moda-latin-400-normal-9rKXKbpF.woff) format("woff")}@font-face{font-family:Bodoni Moda;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/bodoni-moda-latin-400-italic-DB-bun8K.woff2) format("woff2"),url(/assets/bodoni-moda-latin-400-italic-O_MaDy27.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-normal-6IfK1voy.woff2) format("woff2"),url(/assets/fraunces-latin-400-normal-NUPT2cO8.woff) format("woff")}@font-face{font-family:Fraunces;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-italic-ChpO6tcr.woff2) format("woff2"),url(/assets/fraunces-latin-400-italic-B7iDoVhm.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2) format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff) format("woff")}@font-face{font-family:"DM Serif Display";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-serif-display-latin-400-normal-C5_t9oOD.woff2) format("woff2"),url(/assets/dm-serif-display-latin-400-normal-_kVFYEpx.woff) format("woff")}@font-face{font-family:"DM Serif Display";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/dm-serif-display-latin-400-italic-DpcbibHm.woff2) format("woff2"),url(/assets/dm-serif-display-latin-400-italic-BgxzcTJK.woff) format("woff")}:root{--ink: #101311;--ink-raised: #181c19;--ink-line: #2c332d;--paper: #edefea;--paper-raised: #f8f9f6;--paper-line: #cdd2ca;--signal: #c2341c;--signal-strong: #a12a15;--signal-bright: #ff6b4a;--on-ink: #e8eae6;--on-ink-soft: #a9b0a8;--font-display: "Fraunces", Georgia, "Times New Roman", serif;--font-body: "Jost", system-ui, -apple-system, "Segoe UI", sans-serif;--font-data: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--surface: var(--paper);--surface-raised: var(--paper-raised);--line: var(--paper-line);--fg: #121613;--fg-soft: #4b534c;--accent: var(--signal);--accent-strong: var(--signal-strong);--accent-fg: #ffffff;--focus: #121613;--ok: #2f6b45;--warn: #7a4f00;--danger: #b42318;--ok-tint: #e1ede4;--warn-tint: #f4ead3;--danger-tint: #f6e0dd;--info-tint: #e2e6e8;--grain: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");color:var(--fg);background:var(--surface);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2,h3,p,dl,dd,figure,ol,ul{margin:0}a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}code{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85em}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.eyebrow{font-family:var(--font-body);font-size:.75rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-soft)}.stack{display:grid;gap:1.1rem}.stack-tight{display:grid;gap:.6rem}.page-center{display:grid;place-items:center;min-height:60vh;padding:2rem}.brand-mark{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:inherit}.brand-glyph{color:currentColor;flex:none}.brand-glyph-light{fill:var(--signal-bright)}.brand-word{font-family:var(--font-display);font-size:1.2rem;font-weight:600;letter-spacing:-.02em}.brand-word em{font-style:italic;font-weight:400;color:var(--accent)}.brand-suffix{padding-left:.6rem;border-left:1px solid currentColor;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;opacity:.8}.button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.6rem 1.2rem;border:1px solid transparent;border-radius:0;font-weight:500;letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.button:disabled{cursor:not-allowed;opacity:.55}.button-wide{width:100%}.button-primary{background:var(--accent);color:var(--accent-fg)}.button-primary:hover:not(:disabled){background:var(--accent-strong);color:var(--accent-fg)}.button-secondary{background:transparent;border-color:var(--fg);color:var(--fg)}.button-secondary:hover:not(:disabled){background:var(--fg);color:var(--surface)}.button-ghost{background:transparent;color:var(--fg)}.button-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--fg) 8%,transparent);color:var(--fg)}.button-danger{background:var(--danger);color:#fff}.button-danger:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 85%,black);color:#fff}.button-busy{cursor:progress}.button-busy:after{content:"";width:.8em;height:.8em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}.link-button{padding:0;border:0;background:none;color:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}.link-button:hover{color:var(--accent)}.field{display:grid;gap:.35rem}.field-label{font-size:.875rem;font-weight:500;color:var(--fg)}.field-optional{font-weight:400;color:var(--fg-soft)}.field-hint{font-size:.8rem;color:var(--fg-soft)}.field-error{font-size:.8rem;font-weight:500;color:var(--danger)}.input{width:100%;min-height:2.75rem;padding:.55rem .75rem;border:1px solid var(--line);border-bottom-color:var(--fg-soft);border-radius:0;background:var(--surface-raised);color:var(--fg)}.input:hover{border-color:var(--fg-soft)}.input:focus-visible{outline:2px solid var(--focus);outline-offset:0;border-color:var(--focus)}.input:disabled{opacity:.6}.input[aria-invalid=true]{border-color:var(--danger)}input.input,select.input{height:2.75rem}.textarea{min-height:6rem;resize:vertical}.select{appearance:none;padding-right:2.25rem;background-image:linear-gradient(45deg,transparent 50%,var(--fg-soft) 50%),linear-gradient(135deg,var(--fg-soft) 50%,transparent 50%);background-position:calc(100% - 1.15rem) 55%,calc(100% - .8rem) 55%;background-size:.35rem .35rem;background-repeat:no-repeat}.input-group{display:flex}.input-group .input{border-right:0}.input-addon{padding:0 .9rem;border:1px solid var(--line);border-bottom-color:var(--fg-soft);background:var(--surface);color:var(--fg-soft);font-size:.8rem;cursor:pointer}.input-addon:hover{color:var(--fg)}.input-code{font-family:var(--font-data);font-size:1.5rem;letter-spacing:.4em;text-align:center}.toggle{display:grid;grid-template-columns:auto 1fr;align-items:start;column-gap:.75rem}.toggle-input{appearance:none;position:relative;width:2.5rem;height:1.4rem;margin:.1rem 0 0;border:1px solid var(--fg-soft);background:var(--surface-raised);cursor:pointer;transition:background-color .12s ease}.toggle-input:after{content:"";position:absolute;top:2px;left:2px;width:calc(1.4rem - 6px);height:calc(1.4rem - 6px);background:var(--fg-soft);transition:transform .12s ease}.toggle-input:checked{background:var(--accent);border-color:var(--accent)}.toggle-input:checked:after{background:var(--accent-fg);transform:translate(1.1rem)}.toggle-input:disabled{cursor:not-allowed;opacity:.6}.toggle-label{font-size:.925rem;cursor:pointer}.toggle-hint{grid-column:2}.toggle-disabled .toggle-label{cursor:not-allowed}.segmented{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line)}.segmented-option{padding:.45rem .9rem;border:0;background:transparent;color:var(--fg-soft);font-size:.85rem;cursor:pointer}.segmented-option+.segmented-option{border-left:1px solid var(--line)}.segmented-option[aria-pressed=true]{background:var(--fg);color:var(--surface)}.notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1rem;padding:.8rem 1rem;border-left:3px solid var(--fg-soft);background:var(--info-tint);color:var(--fg);font-size:.9rem}.notice-title{font-weight:500}.notice-reference{font-size:.75rem;color:var(--fg-soft)}.notice-success{border-color:var(--ok);background:var(--ok-tint)}.notice-warning{border-color:var(--warn);background:var(--warn-tint)}.notice-error{border-color:var(--danger);background:var(--danger-tint)}.meter{display:grid;gap:.5rem}.meter-track{position:relative;height:.5rem;background:color-mix(in srgb,var(--fg) 12%,transparent)}.meter-fill{height:100%;background:var(--fg);transition:width .4s ease}.meter-alert .meter-fill{background:var(--warn)}.meter-frozen .meter-fill{background:var(--danger)}.meter-mark{position:absolute;top:-.3rem;bottom:-.3rem;width:2px;background:var(--fg)}.meter-legend{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;padding:0;list-style:none;font-size:.8rem;color:var(--fg-soft)}.pill{display:inline-block;padding:.15rem .55rem;border:1px solid currentColor;font-family:var(--font-data);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;vertical-align:middle;color:var(--fg-soft)}.pill-active,.pill-ok,.pill-published,.pill-succeeded{color:var(--ok)}.pill-pending,.pill-alert,.pill-running,.pill-draft{color:var(--warn)}.pill-suspended,.pill-frozen,.pill-failed,.pill-deleting,.pill-expired{color:var(--danger)}.detail-list{display:grid;gap:0;border-top:1px solid var(--line)}.detail-list>div{display:grid;grid-template-columns:minmax(8rem,12rem) 1fr;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}.detail-list dt{font-size:.85rem;color:var(--fg-soft)}.detail-list-compact>div{grid-template-columns:9rem 1fr;padding:.5rem 0;font-size:.9rem}.dialog{width:min(32rem,calc(100vw - 2rem));padding:0;border:1px solid var(--line);border-radius:0;background:var(--surface-raised);color:var(--fg)}.dialog::backdrop{background:#0a0c0ba6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dialog-body{display:grid;gap:1rem;padding:1.5rem}.dialog-title{font-family:var(--font-display);font-size:1.5rem;font-weight:600;letter-spacing:-.01em;line-height:1.2}.dialog-actions{display:flex;justify-content:flex-end;gap:.5rem;padding-top:.5rem}.loading-block{display:inline-flex;align-items:center;gap:.75rem;color:var(--fg-soft)}.loading-dot{width:.6rem;height:.6rem;border-radius:50%;background:var(--accent);animation:pulse 1s ease-in-out infinite alternate}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{opacity:.3}to{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.landing{--surface: var(--ink);--surface-raised: var(--ink-raised);--line: var(--ink-line);--fg: var(--on-ink);--fg-soft: var(--on-ink-soft);--accent: var(--signal-bright);--focus: var(--signal-bright);position:relative;display:grid;grid-template-rows:auto 1fr auto;min-height:100vh;overflow:hidden;padding:clamp(1.25rem,3vw,2.5rem);background:var(--ink);color:var(--on-ink);isolation:isolate}.landing:after{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--grain);opacity:.18;mix-blend-mode:overlay;pointer-events:none}.landing-glow{position:absolute;inset:-20% -10% auto auto;z-index:-2;width:min(75vw,900px);aspect-ratio:1;background:radial-gradient(circle at 60% 40%,rgb(255 92 58 / .42),transparent 58%),radial-gradient(circle at 30% 70%,rgb(140 30 12 / .5),transparent 62%);filter:blur(20px);animation:safelight 9s ease-in-out infinite alternate}@keyframes safelight{0%{opacity:.75;transform:translateZ(0) scale(1)}to{opacity:1;transform:translate3d(-3%,4%,0) scale(1.06)}}.landing-header{display:flex;align-items:center;justify-content:space-between;color:var(--on-ink)}.landing-status{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-data);font-size:.75rem;letter-spacing:.06em;color:var(--on-ink-soft)}.landing-status-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--on-ink-soft)}.landing-status[data-state=online] .landing-status-dot{background:#6fcf8e}.landing-status[data-state=offline] .landing-status-dot{background:var(--signal-bright)}.landing-main{align-self:end;display:grid;gap:clamp(1.5rem,4vw,3rem);max-width:72rem;padding:clamp(3rem,10vh,7rem) 0 clamp(2rem,6vh,4rem)}.landing-title{font-family:var(--font-display);font-size:clamp(4rem,15vw,13rem);font-weight:600;line-height:.85;letter-spacing:-.055em;font-variation-settings:"SOFT" 100,"WONK" 1}.landing-title em{font-style:italic;font-weight:400;color:var(--signal-bright)}.landing-lede{max-width:34rem;font-size:clamp(1.1rem,2vw,1.4rem);line-height:1.4;color:var(--on-ink-soft)}.landing-doors{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));max-width:52rem;border-top:1px solid var(--ink-line)}.landing-door{position:relative;display:grid;gap:.25rem;padding:1.5rem 3.5rem 1.5rem 0;border-bottom:1px solid var(--ink-line);color:var(--on-ink);text-decoration:none}.landing-door+.landing-door{padding-left:1.5rem;border-left:1px solid var(--ink-line)}.landing-door-kicker{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--on-ink-soft)}.landing-door-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3rem);font-weight:400;letter-spacing:-.02em}.landing-door-arrow{position:absolute;right:1rem;bottom:1.75rem;font-size:1.75rem;transition:transform .16s ease}.landing-door:hover{color:var(--signal-bright)}.landing-door:hover .landing-door-arrow{transform:translate(.4rem)}.landing-door-quiet .landing-door-title{font-style:italic}.landing-footer{font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--on-ink-soft)}@media(max-width:40rem){.landing-door+.landing-door{padding-left:0;border-left:0}}.auth-frame{display:grid;grid-template-columns:minmax(18rem,5fr) 7fr;min-height:100vh}.auth-darkroom{position:relative;display:flex;align-items:flex-end;overflow:hidden;padding:clamp(2rem,5vw,4rem);background:var(--ink);color:var(--on-ink);isolation:isolate}.auth-darkroom:after{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--grain);opacity:.2;mix-blend-mode:overlay}.auth-darkroom-glow{position:absolute;top:-15%;left:-25%;z-index:-2;width:130%;aspect-ratio:1;background:radial-gradient(circle at 40% 40%,rgb(255 92 58 / .45),rgb(120 24 10 / .25) 35%,transparent 65%);filter:blur(10px)}.auth-darkroom-line{max-width:22rem;font-family:var(--font-display);font-size:clamp(2.25rem,4vw,3.75rem);font-weight:400;line-height:1.02;letter-spacing:-.03em}.auth-darkroom-line em{font-style:italic;color:var(--signal-bright)}.auth-main{display:grid;grid-template-rows:auto 1fr;gap:2rem;padding:clamp(1.25rem,3vw,2.5rem);background:radial-gradient(ellipse at 100% 0%,rgb(194 52 28 / .06),transparent 50%),var(--paper)}.auth-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.auth-card{align-self:center;justify-self:center;display:grid;gap:1.25rem;width:min(28rem,100%);padding:clamp(1.5rem,4vw,2.5rem);border:1px solid var(--paper-line);background:var(--paper-raised);box-shadow:0 1px #1013110a,0 24px 48px -32px #10131159}.auth-title{font-family:var(--font-display);font-size:clamp(1.9rem,3vw,2.5rem);font-weight:600;line-height:1.05;letter-spacing:-.025em}.auth-lede,.auth-body{color:var(--fg-soft)}.auth-links{font-size:.9rem}.auth-footnote{padding-top:1rem;border-top:1px solid var(--paper-line);font-size:.9rem;color:var(--fg-soft)}.status-seal{width:4rem;height:4rem;border:2px solid var(--fg);border-radius:50%;background:radial-gradient(circle at 65% 35%,var(--signal) 0 22%,transparent 23%)}.status-seal-pending{animation:pulse 1.6s ease-in-out infinite alternate}.status-seal-suspended{border-color:var(--danger);background:linear-gradient(135deg,transparent 46%,var(--danger) 46% 54%,transparent 54%)}@media(max-width:52rem){.auth-frame{grid-template-columns:1fr}.auth-darkroom{min-height:11rem;padding:1.5rem}.auth-darkroom-line{font-size:2rem}}.studio{min-height:100vh;background:radial-gradient(ellipse at 100% 0%,rgb(194 52 28 / .05),transparent 45%),var(--paper)}.studio-bar{--surface: var(--ink);--fg: var(--on-ink);--fg-soft: var(--on-ink-soft);--accent: var(--signal-bright);--focus: var(--signal-bright);position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 2rem;padding:.75rem clamp(1rem,3vw,2rem);background:var(--ink);color:var(--on-ink)}.studio-nav{display:flex;flex-wrap:wrap;gap:.25rem;flex:1}.studio-nav-link{padding:.4rem .75rem;color:var(--on-ink-soft);text-decoration:none;font-size:.95rem}.studio-nav-link:hover{color:var(--on-ink)}.studio-nav-link.active{color:var(--on-ink);box-shadow:inset 0 -2px 0 var(--signal-bright)}.studio-account{display:flex;align-items:center;gap:1rem;font-size:.875rem;color:var(--on-ink-soft)}.studio-account-name{max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studio-main{padding:clamp(1.5rem,4vw,3rem) clamp(1rem,4vw,3rem) 4rem}.studio-page{display:grid;gap:2rem;max-width:76rem;margin:0 auto}.studio-page-header{display:grid;gap:.4rem}.studio-page-header-split{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem}.studio-title{font-family:var(--font-display);font-size:clamp(2.2rem,5vw,3.75rem);font-weight:600;line-height:1;letter-spacing:-.035em}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}.stat-card{display:grid;align-content:start;gap:.75rem;padding:1.25rem 1.5rem 1.5rem;border:1px solid var(--paper-line);background:var(--paper-raised)}.stat-label{font-size:.75rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-soft)}.stat-value{font-family:var(--font-display);font-size:1.9rem;font-weight:400;line-height:1.1;letter-spacing:-.02em}.stat-note{color:var(--fg-soft);font-size:.9rem}.studio-callout{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;padding:clamp(1.5rem,4vw,2.5rem);background:var(--ink);color:var(--on-ink);--accent: var(--signal-bright);--accent-strong: #ff8a6e;--accent-fg: var(--ink);--focus: var(--signal-bright)}.studio-callout-title{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.25rem);font-weight:400;font-style:italic;letter-spacing:-.02em}.studio-callout-body{max-width:36rem;color:var(--on-ink-soft)}.placeholder-panel{display:grid;justify-items:start;gap:.75rem;padding:clamp(1.5rem,4vw,3rem);border:1px dashed var(--fg-soft)}.placeholder-badge{padding:.15rem .5rem;background:var(--fg);color:var(--paper);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}.placeholder-title{font-family:var(--font-display);font-size:1.75rem;font-weight:400}.placeholder-body{max-width:40rem;color:var(--fg-soft)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1.25rem 1.5rem}.form-grid-wide{grid-column:1 / -1}.panel{display:grid;gap:1rem;padding:1.25rem 1.5rem 1.5rem;border:1px solid var(--paper-line);background:var(--paper-raised)}.panel-title{font-family:var(--font-display);font-size:1.35rem;font-weight:600;letter-spacing:-.01em}.admin{--surface: var(--ink);--surface-raised: var(--ink-raised);--line: var(--ink-line);--fg: var(--on-ink);--fg-soft: var(--on-ink-soft);--accent: var(--signal-bright);--accent-strong: #ff8a6e;--accent-fg: var(--ink);--focus: var(--signal-bright);--ok: #6fcf8e;--warn: #f2b84b;--danger: #ff7a66;--ok-tint: rgb(111 207 142 / .12);--warn-tint: rgb(242 184 75 / .12);--danger-tint: rgb(255 122 102 / .12);--info-tint: rgb(233 236 232 / .06);min-height:100vh;background:var(--ink);color:var(--on-ink);font-family:var(--font-data);font-size:.9375rem}.admin .button-danger{color:var(--ink)}.admin .button-danger:hover:not(:disabled){color:var(--ink)}.admin-auth{display:grid;place-items:center;min-height:100vh;padding:1.5rem;background:linear-gradient(rgb(233 236 232 / .035) 1px,transparent 1px) 0 0 / 100% 2.5rem,linear-gradient(90deg,rgb(233 236 232 / .035) 1px,transparent 1px) 0 0 / 2.5rem 100%,radial-gradient(circle at 50% 0%,rgb(255 92 58 / .18),transparent 55%),var(--ink);color:var(--on-ink);font-family:var(--font-data)}.admin-auth-card{display:grid;gap:1.25rem;width:min(26rem,100%);padding:2rem;border:1px solid var(--ink-line);background:#181c19eb}.admin-auth-title{font-family:var(--font-display);font-size:2rem;font-weight:600;letter-spacing:-.02em}.admin-layout{display:grid;grid-template-columns:15rem 1fr}.admin-sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:2rem;height:100vh;padding:1.5rem 1.25rem;border-right:1px solid var(--ink-line);background:var(--ink)}.admin-nav{display:grid;gap:.15rem;padding:0;list-style:none}.admin-nav-link{display:block;padding:.5rem .75rem;border-left:2px solid transparent;color:var(--on-ink-soft);text-decoration:none}.admin-nav-link:hover{color:var(--on-ink)}.admin-nav-link.active{border-left-color:var(--signal-bright);background:var(--ink-raised);color:var(--on-ink)}.admin-account{display:grid;gap:.35rem;margin-top:auto;font-size:.8rem;color:var(--on-ink-soft);word-break:break-all}.admin-account .link-button{justify-self:start}.admin-main{min-width:0;padding:clamp(1.5rem,3vw,2.5rem)}.admin-page{display:grid;gap:1.5rem;max-width:80rem}.admin-page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem}.admin-title{font-family:var(--font-display);font-size:clamp(1.75rem,3vw,2.5rem);font-weight:600;line-height:1.1;letter-spacing:-.025em}.admin-lede{max-width:44rem;color:var(--on-ink-soft)}.breadcrumb{font-size:.85rem}.breadcrumb a{color:var(--on-ink-soft);text-decoration:none}.capacity-hero{display:grid;gap:1rem;padding:1.75rem;border:1px solid var(--ink-line);background:radial-gradient(ellipse at 100% 0%,rgb(255 92 58 / .12),transparent 50%),var(--ink-raised)}.capacity-figure{display:flex;align-items:center;gap:1rem}.capacity-percent{font-family:var(--font-display);font-size:clamp(3.5rem,8vw,6rem);font-weight:400;line-height:.9;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.capacity-detail{color:var(--on-ink-soft)}.admin .meter-track{height:.75rem}.admin-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1px;border:1px solid var(--ink-line);background:var(--ink-line)}.admin-tile{display:grid;gap:.25rem;padding:1.25rem;background:var(--ink);color:var(--on-ink);text-decoration:none}.admin-tile:hover{background:var(--ink-raised);color:var(--on-ink)}.admin-tile-value{font-family:var(--font-display);font-size:2.5rem;line-height:1;font-variant-numeric:tabular-nums}.admin-tile-label{font-size:.8rem;color:var(--on-ink-soft)}.admin-tile-highlight .admin-tile-value{color:var(--signal-bright)}.admin-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));gap:1rem}.admin-panel{display:grid;align-content:start;gap:1rem;padding:1.25rem 1.5rem 1.5rem;border:1px solid var(--ink-line);background:var(--ink-raised)}.admin-panel-title,.admin-section-title{font-size:.75rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--on-ink-soft)}.admin-section{display:grid;gap:.75rem}.admin-figure{font-family:var(--font-display);font-size:2rem;line-height:1.1}.admin-figure span{font-size:1rem;color:var(--on-ink-soft)}.admin-actions{display:flex;flex-wrap:wrap;gap:.75rem}.admin-action{display:grid;gap:.35rem}.admin-plan-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.75rem;padding-top:1rem;border-top:1px solid var(--ink-line)}.table-wrap{overflow-x:auto;border:1px solid var(--line)}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table th,.table td{padding:.7rem .9rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table th{font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-soft);background:var(--surface-raised);white-space:nowrap}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:color-mix(in srgb,var(--fg) 4%,transparent)}.table .numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table-primary{display:block;font-weight:500}.table-secondary{display:block;font-size:.8rem;color:var(--fg-soft)}.table-error{max-width:22rem;font-size:.8rem;color:var(--danger);word-break:break-word}.table-empty{padding:2rem!important;text-align:center!important;color:var(--fg-soft)}.table-action{display:grid;gap:.25rem;justify-items:start}.table-action .button{min-height:2rem;padding:.3rem .8rem;font-size:.8rem}.pagination{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:.85rem;color:var(--on-ink-soft)}.pagination-actions{display:flex;gap:.5rem}.admin .dialog{background:var(--ink-raised)}@media(max-width:56rem){.admin-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.admin-sidebar{position:static;height:auto;gap:1rem;border-right:0;border-bottom:1px solid var(--ink-line)}.admin-nav{display:flex;flex-wrap:wrap}.admin-nav-link{border-left:0;border-bottom:2px solid transparent}.admin-nav-link.active{border-bottom-color:var(--signal-bright)}.admin-account{margin-top:0}}.wizard-progress ol{display:flex;flex-wrap:wrap;gap:0;padding:0;list-style:none;border-top:1px solid var(--paper-line);border-bottom:1px solid var(--paper-line)}.wizard-progress li{flex:1 1 8rem}.wizard-progress-step{display:flex;align-items:baseline;gap:.6rem;width:100%;padding:.9rem .75rem;border:0;border-bottom:2px solid transparent;background:none;color:var(--fg-soft);text-align:left;cursor:pointer}.wizard-progress-step:disabled{cursor:default;opacity:.55}.wizard-progress-step[aria-current=step]{border-bottom-color:var(--signal);color:var(--fg)}.wizard-progress-step[data-complete]{color:var(--fg)}.wizard-progress-index{font-family:var(--font-data);font-size:.75rem;font-variant-numeric:tabular-nums}.wizard-form{display:grid;gap:2rem}.wizard-step{display:grid;gap:1.5rem;min-width:0;margin:0;padding:0;border:0}.wizard-step-title{float:left;width:100%;padding:0;font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.25rem);font-weight:400;letter-spacing:-.02em}.wizard-step-title+*{clear:both}.wizard-step-lede{margin-top:-.75rem;max-width:42rem;color:var(--fg-soft)}.wizard-actions{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 0;border-top:1px solid var(--paper-line);background:linear-gradient(to top,var(--paper) 70%,transparent)}.occasion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.75rem}.occasion-card{display:grid;gap:.35rem;padding:.75rem .75rem 1rem;border:1px solid var(--paper-line);background:var(--paper-raised);cursor:pointer;transition:border-color .12s ease,transform .12s ease}.occasion-card:hover{border-color:var(--fg-soft)}.occasion-card:has(input:checked){border-color:var(--fg);box-shadow:inset 0 0 0 1px var(--fg)}.occasion-card:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.occasion-swatch{position:relative;display:block;height:4.5rem;margin-bottom:.4rem;background:var(--g-bg);border:1px solid color-mix(in srgb,var(--g-text) 12%,transparent)}.occasion-swatch-surface{position:absolute;inset:.6rem 40% .6rem .6rem;background:var(--g-surface)}.occasion-swatch-accent{position:absolute;right:.9rem;bottom:.9rem;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--g-control)}.occasion-name{font-family:var(--font-display);font-size:1.25rem;line-height:1.1}.occasion-theme{font-size:.8rem;color:var(--fg-soft)}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem}.theme-card{display:grid;gap:.5rem;cursor:pointer}.theme-card-canvas{display:grid;align-content:end;gap:.35rem;min-height:11rem;padding:1rem;border:1px solid color-mix(in srgb,var(--g-text) 14%,transparent);background:var(--g-bg);color:var(--g-text);font-family:var(--g-font-body);transition:transform .16s ease}.theme-card:hover .theme-card-canvas{transform:translateY(-2px)}.theme-card:has(input:checked) .theme-card-canvas{outline:2px solid var(--fg);outline-offset:3px}.theme-card:has(input:focus-visible) .theme-card-canvas{outline:2px solid var(--focus);outline-offset:3px}.theme-card-cover{height:4rem;margin-bottom:.4rem;background:linear-gradient(135deg,color-mix(in srgb,var(--g-accent) 35%,var(--g-surface)),var(--g-surface))}[data-theme=atelier] .theme-card-cover{height:1px;background:var(--g-text)}.theme-card-title{font-family:var(--g-font-display);font-style:var(--g-display-style);font-weight:var(--g-display-weight);text-transform:var(--g-display-transform);letter-spacing:var(--g-display-tracking);font-size:1.6rem;line-height:1.05}[data-theme=atelier] .theme-card-title{font-size:1.05rem}.theme-card-body{font-size:.8rem;color:var(--g-muted)}.theme-card-meta{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.theme-card-name{font-weight:500}.theme-card-badge{padding:.1rem .45rem;background:var(--fg);color:var(--paper);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.style-controls{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.5rem 2rem}.layout-choice{display:grid;gap:.6rem;margin:0;padding:0;border:0}.layout-options{display:flex;flex-wrap:wrap;gap:.6rem}.layout-option{display:grid;justify-items:center;gap:.35rem;width:6.5rem;padding:.5rem;border:1px solid var(--paper-line);background:var(--paper-raised);font-size:.75rem;text-align:center;cursor:pointer}.layout-option:has(input:checked){border-color:var(--fg);box-shadow:inset 0 0 0 1px var(--fg)}.layout-option:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.layout-diagram{position:relative;display:block;width:4.5rem;height:3rem;border:1px solid var(--fg-soft);background:var(--paper)}.layout-diagram:before,.layout-diagram:after{content:"";position:absolute}.layout-diagram-fullbleed-center:before{inset:0;background:color-mix(in srgb,var(--fg) 30%,transparent)}.layout-diagram-fullbleed-center:after{top:45%;left:25%;right:25%;height:3px;background:var(--paper-raised)}.layout-diagram-fullbleed-bottom:before{inset:0;background:color-mix(in srgb,var(--fg) 30%,transparent)}.layout-diagram-fullbleed-bottom:after{bottom:18%;left:12%;width:45%;height:3px;background:var(--paper-raised)}.layout-diagram-split:before{inset:0 50% 0 0;background:color-mix(in srgb,var(--fg) 30%,transparent)}.layout-diagram-split:after{top:45%;left:60%;width:30%;height:3px;background:var(--fg)}.layout-diagram-framed:before{inset:12% 15% 35%;background:color-mix(in srgb,var(--fg) 30%,transparent)}.layout-diagram-framed:after{bottom:15%;left:30%;right:30%;height:3px;background:var(--fg)}.layout-diagram-minimal:after{top:45%;left:20%;right:20%;height:3px;background:var(--fg)}.layout-diagram-justified{background:linear-gradient(90deg,var(--fg-soft) 0 38%,transparent 38% 42%,var(--fg-soft) 42% 100%) 0 10% / 100% 38% no-repeat,linear-gradient(90deg,var(--fg-soft) 0 60%,transparent 60% 64%,var(--fg-soft) 64% 100%) 0 90% / 100% 38% no-repeat,var(--paper);background-origin:content-box;padding:.2rem}.layout-diagram-masonry{background:linear-gradient(var(--fg-soft) 0 55%,transparent 55% 62%,var(--fg-soft) 62% 100%) 0 0 / 30% 100% no-repeat,linear-gradient(var(--fg-soft) 0 30%,transparent 30% 37%,var(--fg-soft) 37% 100%) 50% 0 / 30% 100% no-repeat,linear-gradient(var(--fg-soft) 0 70%,transparent 70% 77%,var(--fg-soft) 77% 100%) 100% 0 / 30% 100% no-repeat,var(--paper);background-origin:content-box;padding:.2rem}.accent-control{display:grid;align-content:start;gap:.6rem}.color-field{display:inline-flex;align-items:center;gap:.75rem;font-size:.9rem}.color-field input[type=color]{width:3rem;height:2.25rem;padding:0;border:1px solid var(--fg-soft);background:none;cursor:pointer}.purpose-choice{display:grid;gap:.6rem;margin:0;padding:0;border:0}.purpose-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.75rem}.purpose-option{display:grid;gap:.25rem;padding:1rem 1.25rem;border:1px solid var(--paper-line);background:var(--paper-raised);cursor:pointer}.purpose-option:has(input:checked){border-color:var(--fg);box-shadow:inset 3px 0 0 var(--signal)}.purpose-option:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.purpose-label{font-family:var(--font-display);font-size:1.35rem}.purpose-hint{font-size:.875rem;color:var(--fg-soft)}.review-layout .stack>.button{justify-self:start}.review-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:2rem;align-items:start}.set-list{display:flex;flex-wrap:wrap;gap:.35rem;padding:0;list-style:none}.set-list li{padding:.15rem .55rem;border:1px solid var(--paper-line);font-size:.85rem}.invitation-preview{margin:.4rem 0 0;padding:1rem;border-left:3px solid var(--signal);background:var(--paper-raised);font-family:var(--font-body);font-size:.95rem;white-space:pre-wrap;word-break:break-word}.review-preview{display:grid;gap:.5rem;position:sticky;top:5rem}.review-preview-frame{max-height:72vh;overflow:auto;border:1px solid var(--paper-line);box-shadow:0 30px 60px -40px #10131180}@media(max-width:60rem){.review-layout .stack>.button{justify-self:start}.review-layout{grid-template-columns:1fr}.review-preview{position:static}}.inline-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.5rem}.inline-form{display:grid;grid-template-columns:1fr auto;align-items:end;gap:.75rem}.password-chip{padding:.3rem .6rem;border:1px dashed var(--fg);background:var(--surface-raised);font-size:1rem;letter-spacing:.06em}.icon-button{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border:1px solid transparent;background:transparent;color:var(--fg-soft);cursor:pointer}.icon-button:hover:not(:disabled){border-color:var(--line);color:var(--fg)}.icon-button:disabled{opacity:.35;cursor:default}.section-heading{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.5rem 1rem}.breadcrumb a{color:var(--fg-soft);text-decoration:none}.breadcrumb a:hover{color:var(--fg)}.gallery-list{display:grid;gap:0;padding:0;list-style:none;border-top:1px solid var(--paper-line)}.gallery-list-item{display:grid;grid-template-columns:4.5rem 1fr auto;align-items:center;gap:1.25rem;padding:1rem .5rem;border-bottom:1px solid var(--paper-line);color:inherit;text-decoration:none;transition:background-color .12s ease}.gallery-list-item:hover{background:var(--paper-raised);color:inherit}.gallery-list-swatch{position:relative;display:block;height:3.25rem;background:var(--g-bg);border:1px solid color-mix(in srgb,var(--g-text) 15%,transparent)}.gallery-list-swatch span{position:absolute;inset:.5rem 45% .5rem .5rem;background:var(--g-surface);box-shadow:1.6rem .9rem 0 -.55rem var(--g-control)}.gallery-list-body{display:grid;gap:.2rem;min-width:0}.gallery-list-title{font-family:var(--font-display);font-size:1.4rem;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-list-meta{font-size:.875rem;color:var(--fg-soft)}.gallery-list-state{display:grid;justify-items:end;gap:.3rem}.gallery-admin-header{display:grid;gap:.75rem}.gallery-admin-title-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem 2rem}.gallery-admin-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;margin-top:.6rem;font-size:.9rem;color:var(--fg-soft)}.gallery-admin-actions{display:flex;flex-wrap:wrap;gap:.5rem}.tabs{display:flex;flex-wrap:wrap;gap:0;border-bottom:1px solid var(--paper-line)}.tab{padding:.75rem 1rem;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--fg-soft);text-decoration:none}.tab:hover{color:var(--fg)}.tab.active{border-bottom-color:var(--signal);color:var(--fg)}.photos-layout{display:grid;grid-template-columns:minmax(14rem,18rem) 1fr;gap:2rem;align-items:start}.sets-panel{position:sticky;top:5rem;display:grid;gap:.75rem}.sets-title{font-size:.75rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-soft)}.sets-list{display:grid;gap:0;padding:0;list-style:none;border-top:1px solid var(--paper-line)}.sets-item{display:flex;align-items:center;gap:.25rem;border-bottom:1px solid var(--paper-line)}.sets-item[aria-current]{box-shadow:inset 3px 0 0 var(--signal);background:var(--paper-raised)}.sets-select{display:flex;flex:1;align-items:baseline;justify-content:space-between;gap:.5rem;min-width:0;padding:.65rem .5rem .65rem .85rem;border:0;background:none;color:inherit;text-align:left;cursor:pointer}.sets-select span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sets-count{font-family:var(--font-data);font-size:.75rem;color:var(--fg-soft)}.sets-tools{display:flex;opacity:.35;transition:opacity .12s ease}.sets-item:hover .sets-tools,.sets-item:focus-within .sets-tools{opacity:1}.sets-rename,.sets-add{display:grid;grid-template-columns:1fr auto;gap:.4rem;width:100%;padding:.4rem 0}.sets-rename .input,.sets-add .input{min-height:2.4rem}.photos-main{display:grid;gap:1.25rem;min-width:0}.dropzone{display:grid;justify-items:center;gap:.6rem;padding:2rem 1.5rem;border:1.5px dashed var(--fg-soft);background:radial-gradient(ellipse at 50% 0%,rgb(194 52 28 / .06),transparent 70%),var(--paper-raised);text-align:center;transition:border-color .12s ease,background-color .12s ease}.dropzone-active{border-color:var(--signal);background:#c2341c14}.dropzone:has(input:focus-visible) .button{outline:2px solid var(--focus);outline-offset:2px}.dropzone-title{font-family:var(--font-display);font-size:1.6rem;font-weight:400}.dropzone-body{color:var(--fg-soft);font-size:.9rem}.upload-queue{display:grid;gap:.5rem}.upload-queue-header{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;color:var(--fg-soft)}.upload-list{display:grid;gap:0;max-height:18rem;overflow:auto;padding:0;list-style:none;border:1px solid var(--paper-line);background:var(--paper-raised)}.upload-item{display:grid;grid-template-columns:minmax(0,1fr) auto 8rem auto;align-items:center;gap:.35rem 1rem;padding:.5rem .75rem;border-bottom:1px solid var(--paper-line);font-size:.85rem}.upload-item:last-child{border-bottom:0}.upload-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload-status{color:var(--fg-soft)}.upload-item-done .upload-status{color:var(--ok)}.upload-item-failed .upload-status,.upload-item-rejected .upload-status{color:var(--danger)}.upload-progress{width:100%;height:.35rem;appearance:none;border:0;background:color-mix(in srgb,var(--fg) 12%,transparent)}.upload-progress::-webkit-progress-bar{background:color-mix(in srgb,var(--fg) 12%,transparent)}.upload-progress::-webkit-progress-value{background:var(--fg)}.upload-progress::-moz-progress-bar{background:var(--fg)}.upload-error,.upload-note{grid-column:1 / -1;font-size:.8rem}.upload-error{color:var(--danger)}.upload-note{color:var(--warn)}.upload-actions{display:inline-flex;gap:.75rem}.photos-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;min-height:2.75rem}.photos-toolbar .select{min-width:12rem}.photos-empty{padding:2rem 0;color:var(--fg-soft)}.studio-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.75rem;padding:0;list-style:none}.studio-photo{display:grid;gap:.35rem}.studio-photo-frame{position:relative;display:block;aspect-ratio:1;overflow:hidden;cursor:pointer}.studio-photo-frame img{width:100%;height:100%;object-fit:cover;display:block}.studio-photo-check{position:absolute;top:.5rem;left:.5rem;width:1.25rem;height:1.25rem;accent-color:var(--signal);cursor:pointer}.studio-photo[data-selected] .studio-photo-frame{outline:3px solid var(--signal);outline-offset:-3px}.studio-photo-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;color:var(--fg-soft)}.settings-layout,.share-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(18rem,1fr);gap:1.5rem;align-items:start}.cover-focal{position:relative;display:block;padding:0;border:0;background:none;cursor:crosshair}.cover-focal img{display:block;width:100%;height:auto}.cover-focal-point{position:absolute;width:1.5rem;height:1.5rem;border:2px solid #ffffff;border-radius:50%;box-shadow:0 0 0 2px #00000080;transform:translate(-50%,-50%);pointer-events:none}.share-link{padding:.75rem 1rem;border:1px solid var(--paper-line);background:var(--paper);overflow-wrap:anywhere}.qr-code{display:block;max-width:100%;height:auto;border:1px solid var(--paper-line)}.selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:1rem}.selection-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.selection-card-count{font-family:var(--font-display);font-size:1.1rem;white-space:nowrap}.submission-list{display:grid;gap:.25rem;padding:0;list-style:none;font-size:.875rem}.logo-slot{display:grid;gap:.5rem}.logo-slot-canvas{display:grid;place-items:center;min-height:6rem;padding:1rem;border:1px solid var(--paper-line);background:#fff;color:#666;font-size:.85rem}.logo-slot-dark .logo-slot-canvas{background:#0f0f0f;color:#a39e96}.logo-slot-canvas img{max-width:100%;max-height:5rem;object-fit:contain}@media(max-width:60rem){.photos-layout,.settings-layout,.share-layout{grid-template-columns:1fr}.sets-panel{position:static}.upload-item{grid-template-columns:minmax(0,1fr) auto}.upload-progress{grid-column:1 / -1}}.gallery{--focus: var(--g-focus);position:relative;display:grid;align-content:start;min-height:100%;background:var(--g-bg);color:var(--g-text);font-family:var(--g-font-body);animation:gallery-enter .42s ease both}@keyframes gallery-enter{0%{opacity:0}}.gallery :focus-visible{outline:2px solid var(--g-focus);outline-offset:3px}.gallery a{color:inherit}.gallery a:hover{color:var(--g-accent)}.gallery-preview-badge{position:absolute;top:.75rem;right:.75rem;z-index:3;padding:.2rem .6rem;background:var(--g-control);color:var(--g-on-control);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}.gallery-title{font-family:var(--g-font-display);font-style:var(--g-display-style);font-weight:var(--g-display-weight);text-transform:var(--g-display-transform);letter-spacing:var(--g-display-tracking);font-size:clamp(2.5rem,7vw,5.5rem);line-height:1;overflow-wrap:anywhere}[data-theme=atelier] .gallery-title{font-size:clamp(1.75rem,4vw,3rem);line-height:1.15}.gallery-subtitle{font-size:clamp(1rem,2vw,1.25rem);color:var(--g-muted)}.gallery-date{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;color:var(--g-muted)}.gallery-studio{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase}.gallery-logo{display:block;max-width:10rem;max-height:3.5rem;object-fit:contain}.gallery-cover{position:relative;display:grid}.gallery-cover-text{display:grid;gap:.75rem;padding:clamp(2rem,6vw,5rem) clamp(1.25rem,5vw,4rem)}.gallery-cover-image{position:relative;overflow:hidden;background:radial-gradient(circle at 70% 30%,color-mix(in srgb,var(--g-accent) 30%,transparent),transparent 60%),linear-gradient(160deg,var(--g-surface),color-mix(in srgb,var(--g-surface) 70%,var(--g-text)))}.gallery-cover-image img{width:100%;height:100%;object-fit:cover;display:block}.gallery-cover-fullbleed-center .gallery-cover,.gallery-cover-fullbleed-bottom .gallery-cover{min-height:min(88vh,52rem)}.gallery-cover-fullbleed-center .gallery-cover-image,.gallery-cover-fullbleed-bottom .gallery-cover-image,.gallery-cover-fullbleed-center .gallery-cover-text,.gallery-cover-fullbleed-bottom .gallery-cover-text{grid-area:1 / 1}.gallery-cover-fullbleed-center .gallery-cover-image:after,.gallery-cover-fullbleed-bottom .gallery-cover-image:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#0000009e,#0000002e 55%,#0000004d)}.gallery-cover-fullbleed-center .gallery-cover-text,.gallery-cover-fullbleed-bottom .gallery-cover-text{position:relative;z-index:1;color:#fff}.gallery-cover-fullbleed-center .gallery-cover-text .gallery-subtitle,.gallery-cover-fullbleed-center .gallery-cover-text .gallery-date,.gallery-cover-fullbleed-bottom .gallery-cover-text .gallery-subtitle,.gallery-cover-fullbleed-bottom .gallery-cover-text .gallery-date{color:#ffffffdb}.gallery-cover-fullbleed-center .gallery-cover-text{align-content:center;justify-items:center;text-align:center}.gallery-cover-fullbleed-bottom .gallery-cover-text{align-content:end;max-width:56rem}.gallery-cover-split .gallery-cover{grid-template-columns:1.1fr 1fr;min-height:min(80vh,46rem)}.gallery-cover-split .gallery-cover-text{align-content:center}.gallery-cover-framed .gallery-cover{padding:clamp(1rem,5vw,4rem) clamp(1rem,5vw,4rem) 0}.gallery-cover-framed .gallery-cover-image{aspect-ratio:3 / 2;max-height:70vh}.gallery-cover-framed .gallery-cover-text{justify-items:center;padding-inline:0;text-align:center}.gallery-cover-minimal .gallery-cover-text{justify-items:center;padding-block:clamp(4rem,12vw,9rem) clamp(2rem,6vw,4rem);text-align:center}[data-theme=atelier].gallery-cover-minimal .gallery-cover-text{border-bottom:1px solid var(--g-text);margin-inline:clamp(1.25rem,5vw,4rem);padding-inline:0}.review-preview-frame .gallery-cover{min-height:22rem!important}.review-preview-frame .gallery-title{font-size:clamp(2rem,4vw,3rem)}@media(max-width:44rem){.gallery-cover-split .gallery-cover{grid-template-columns:1fr}.gallery-cover-split .gallery-cover-image{min-height:50vh}}.gallery-intro{display:grid;justify-items:center;gap:.75rem;max-width:40rem;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) 1.25rem;text-align:center}.gallery-welcome{font-size:1.05rem;line-height:1.7;white-space:pre-line}.gallery-expiry{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--g-muted)}.gallery-sets{position:sticky;top:0;z-index:2;display:flex;justify-content:center;flex-wrap:wrap;gap:.25rem 1.25rem;padding:.75rem 1rem;background:color-mix(in srgb,var(--g-bg) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid color-mix(in srgb,var(--g-text) 12%,transparent)}.gallery-set{display:inline-flex;align-items:baseline;gap:.4rem;min-height:2.25rem;padding:.35rem .1rem;border:0;border-bottom:2px solid transparent;background:none;color:var(--g-muted);font-size:.9rem;letter-spacing:.04em;cursor:pointer}.gallery-set:hover{color:var(--g-text)}.gallery-set[aria-pressed=true]{color:var(--g-text);border-bottom-color:var(--g-control)}.gallery-set-count{font-size:.75rem;color:var(--g-muted)}.gallery-set-favorites{margin-left:1rem}.gallery-set-tab{display:inline-flex;align-items:center;gap:.5rem}.gallery-set-download{display:inline-flex;align-items:center;gap:.3rem;min-height:2rem;padding:.2rem .55rem;border:1px solid color-mix(in srgb,var(--g-text) 35%,transparent);border-radius:0;background:transparent;color:var(--g-text);font:inherit;font-size:.75rem;letter-spacing:.04em;cursor:pointer}.gallery-set-download:hover:not(:disabled){border-color:var(--g-text)}.gallery-set-download:disabled{opacity:.5;cursor:progress}.gallery-downloads{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:.9rem 1.25rem;font-size:.9rem;text-align:center}.gallery-downloads-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem 1.25rem}.gallery-downloads-actions .gallery-button{display:inline-flex;align-items:center;gap:.5rem}.gallery-downloads-size{color:var(--g-muted);font-size:.8rem}.gallery-downloads-variants{display:flex;align-items:center;gap:.9rem;margin:0;padding:0;border:0}.gallery-downloads-variants legend{float:left;margin-right:.4rem;color:var(--g-muted)}.gallery-downloads-variants label{display:inline-flex;align-items:center;gap:.35rem;min-height:2.25rem;cursor:pointer}.gallery-downloads-note{max-width:40rem;margin:0;color:var(--g-muted)}.gallery-downloads-status{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.6rem 1rem;max-width:44rem}.gallery-downloads-status progress{width:10rem;accent-color:var(--g-control)}.gallery-selection{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem 1.25rem;padding:.9rem 1.25rem;background:var(--g-surface);font-size:.9rem}.gallery-selection-count{font-weight:500}.gallery-selection-confirm{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.75rem;max-width:44rem;text-align:center}.gallery-selection-error,.gallery-error{color:var(--g-text);font-weight:500;border-left:3px solid var(--g-control);padding-left:.6rem}.gallery-button{min-height:2.75rem;padding:.55rem 1.2rem;border:1px solid var(--g-text);border-radius:0;background:transparent;color:var(--g-text);font:inherit;letter-spacing:.04em;cursor:pointer}.gallery-button:hover:not(:disabled){background:color-mix(in srgb,var(--g-text) 8%,transparent)}.gallery-button-primary{border-color:var(--g-control);background:var(--g-control);color:var(--g-on-control)}.gallery-button-primary:hover:not(:disabled){background:color-mix(in srgb,var(--g-control) 85%,var(--g-text))}.gallery-button:disabled{opacity:.5;cursor:not-allowed}.gallery-link{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}.gallery-empty{display:grid;place-items:center;min-height:14rem;padding:3rem 1.25rem;color:var(--g-muted)}.gallery-empty-hairline p{padding-top:1.5rem;border-top:1px solid var(--g-text);letter-spacing:.12em;text-transform:uppercase;font-size:.8rem}.gallery-grid-section{padding:var(--g-gap)}.photo-grid{margin:0;padding:0;list-style:none}.photo-grid-justified{display:flex;flex-wrap:wrap;gap:var(--g-gap)}.photo-grid-filler{flex-grow:1000;height:0}.photo-grid-masonry{columns:3 16rem;column-gap:var(--g-gap)}.photo-grid-masonry .photo-tile{margin-bottom:var(--g-gap);break-inside:avoid}.photo-tile{position:relative;overflow:hidden;background:var(--g-surface)}.photo-tile-open{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in}.photo-tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s ease,opacity .3s ease}.photo-tile-open:hover img{transform:scale(1.02)}.photo-tile-favorite{position:absolute;right:.5rem;bottom:.5rem;display:grid;place-items:center;width:2.5rem;height:2.5rem;border:0;border-radius:50%;background:#00000061;color:#fff;cursor:pointer;opacity:0;transition:opacity .15s ease}.photo-tile:hover .photo-tile-favorite,.photo-tile-favorite:focus-visible,.photo-tile-favorite[aria-pressed=true]{opacity:1}.photo-tile-favorite[aria-pressed=true]{background:var(--g-control);color:var(--g-on-control)}.photo-tile-favorite:disabled{cursor:default}@media(hover:none){.photo-tile-favorite{opacity:1}}.lightbox{width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;padding:0;border:0;background:var(--g-lightbox);color:#fff}.lightbox::backdrop{background:var(--g-lightbox)}.lightbox-body{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;height:100%;font-family:var(--g-font-body)}.lightbox-bar,.lightbox-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;padding:.75rem 1rem}.lightbox-bar{justify-content:space-between}.lightbox-actions{justify-content:center}.lightbox-counter{font-variant-numeric:tabular-nums;letter-spacing:.08em}.lightbox-filename{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;color:#ffffffc7}.lightbox-stage{position:relative;display:grid;place-items:center;min-height:0;height:100%;overflow:hidden;padding:0 3.5rem;touch-action:pan-y}.lightbox-image{max-width:100%;max-height:100%;min-height:0;width:auto;height:auto;object-fit:contain;-webkit-user-select:none;user-select:none}.lightbox-nav{position:absolute;top:50%;display:grid;place-items:center;width:3rem;height:4rem;border:0;background:transparent;color:#fff;font-size:2.5rem;line-height:1;transform:translateY(-50%);cursor:pointer}.lightbox-nav:disabled{opacity:.2;cursor:default}.lightbox-nav-previous{left:.25rem}.lightbox-nav-next{right:.25rem}.lightbox-button{display:inline-flex;align-items:center;gap:.45rem;min-height:2.5rem;padding:.45rem 1rem;border:1px solid rgb(255 255 255 / .5);border-radius:0;background:transparent;color:#fff;font:inherit;font-size:.875rem;cursor:pointer}.lightbox-button:hover:not(:disabled){background:#ffffff1a}.lightbox-button:disabled{opacity:.5}.lightbox-favorite[aria-pressed=true]{border-color:#fff;background:#fff;color:#111}.lightbox-button:focus-visible,.lightbox-nav:focus-visible,.lightbox-note textarea:focus-visible{outline:2px solid #ffffff;outline-offset:2px}.lightbox-note{display:grid;gap:.4rem;width:min(36rem,calc(100% - 2rem));margin:0 auto 1rem}.lightbox-note-label{font-size:.8rem;color:#fffc}.lightbox-note textarea{padding:.5rem .65rem;border:1px solid rgb(255 255 255 / .4);border-radius:0;background:#ffffff0f;color:#fff;font:inherit;resize:vertical}.lightbox-note-actions{display:flex;align-items:center;gap:.75rem;font-size:.8rem}.gallery-gate,.gallery-message{display:grid;place-items:center;align-content:center;min-height:100vh;padding:2rem 1.25rem}.gallery-gate-body,.gallery-message-body{display:grid;justify-items:center;gap:1rem;width:min(30rem,100%);text-align:center}.gallery-gate .gallery-title,.gallery-message .gallery-title{font-size:clamp(2rem,5vw,3.25rem)}.gallery-form{display:grid;gap:1rem;width:100%;margin-top:1rem;text-align:left}.gallery-form-inline{grid-template-columns:1fr auto;align-items:end}.gallery-field{display:grid;gap:.35rem;font-size:.85rem}.gallery-field input{min-height:2.75rem;padding:.55rem .75rem;border:1px solid color-mix(in srgb,var(--g-text) 30%,transparent);border-bottom-color:var(--g-text);border-radius:0;background:var(--g-surface);color:var(--g-text);font:inherit;font-size:1rem}.gallery-field input[aria-invalid=true]{border-color:var(--g-control)}.gallery-privacy{font-size:.8rem;color:var(--g-muted)}.gallery-recovery{margin-top:.5rem;width:100%;font-size:.875rem;color:var(--g-muted)}.gallery-footer{display:grid;justify-items:center;gap:.6rem;margin-top:3rem;padding:2.5rem 1.25rem 3rem;border-top:1px solid color-mix(in srgb,var(--g-text) 12%,transparent);font-size:.85rem;color:var(--g-muted)}.gallery-footer-name{font-family:var(--g-font-display);font-style:var(--g-display-style);font-size:1.25rem;color:var(--g-text)}.gallery-footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.5rem;margin:0;padding:0;list-style:none}.preview-page{margin:calc(-1*clamp(1.5rem,4vw,3rem)) calc(-1*clamp(1rem,4vw,3rem)) -4rem}.preview-banner{position:sticky;top:3.6rem;z-index:5;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:.6rem clamp(1rem,4vw,3rem);background:var(--signal);color:#fff;font-size:.875rem}.preview-banner a{color:#fff}@media(prefers-reduced-motion:reduce){.gallery{animation:none}.photo-tile img{transition:none}}
