:root{--ink: #08080a;--ink-2: #0d0d10;--ink-3: #14141a;--ink-4: #1c1c23;--paper: #f2efe6;--paper-dim: #d9d5c9;--bone: #f2efe6;--muted: #9d9c95;--muted-2: #6e6d68;--acid: #c8ff38;--acid-dim: #9fcc2b;--violet: #b79cff;--rust: #e2703a;--danger: #ff6b5e;--ok: #7ee0a8;--line: rgba(242, 239, 230, .13);--line-strong: rgba(242, 239, 230, .28);--font-display: "Instrument Serif", ui-serif, Georgia, "Times New Roman", serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--step--2: clamp(.66rem, .63rem + .15vw, .73rem);--step--1: clamp(.78rem, .75rem + .16vw, .86rem);--step-0: clamp(.94rem, .9rem + .2vw, 1.02rem);--step-1: clamp(1.12rem, 1.04rem + .4vw, 1.3rem);--step-2: clamp(1.4rem, 1.25rem + .75vw, 1.85rem);--step-3: clamp(1.85rem, 1.55rem + 1.5vw, 2.75rem);--step-4: clamp(2.4rem, 1.85rem + 2.8vw, 4.4rem);--step-5: clamp(3rem, 2rem + 5.2vw, 7rem);--space-1: .35rem;--space-2: .6rem;--space-3: 1rem;--space-4: 1.6rem;--space-5: 2.4rem;--space-6: 4rem;--space-7: 6.5rem;--gutter: clamp(1.15rem, 4vw, 4rem);--maxw: 1320px;--measure: 62ch;--radius: 2px;--ease: cubic-bezier(.16, 1, .3, 1);--dur: .22s}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--font-sans);font-size:var(--step-0);font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;pointer-events:none;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}img,svg,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;padding:0}h1,h2,h3,h4,p,figure{margin:0}ul,ol{margin:0;padding:0;list-style:none}::selection{background:var(--acid);color:var(--on-accent)}:focus-visible{outline:2px solid var(--acid);outline-offset:3px;border-radius:1px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--ink)}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--bone) 20%,var(--ink));border:3px solid var(--ink);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--bone) 32%,var(--ink))}.display{font-family:var(--font-display);font-weight:400;line-height:.94;letter-spacing:-.02em}h1.display{font-size:var(--step-5)}h2.display{font-size:var(--step-4)}h3.display{font-size:var(--step-2)}.eyebrow{font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}.lede{font-size:var(--step-1);line-height:1.5;color:var(--paper-dim);max-width:var(--measure);font-weight:300}.muted{color:var(--muted)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.italic{font-style:italic}.accent{color:var(--acid)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.shell{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:var(--space-7);border-top:1px solid var(--line)}.section--tight{padding-block:var(--space-6)}.section-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5)}.stack>*+*{margin-top:var(--space-3)}.row{display:flex;align-items:center;gap:var(--space-3)}.between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.wrap{flex-wrap:wrap}.grow{flex:1}.site-header{position:fixed;inset:0 0 auto 0;z-index:90;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);border-bottom:1px solid transparent}.site-header.is-stuck{background:#08080ad1;background:color-mix(in srgb,var(--ink) 82%,transparent);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom-color:var(--line)}.site-header__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:74px}.brand{display:flex;align-items:center;gap:.7rem;font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}.brand__mark{width:26px;height:26px;flex:none;display:grid;place-items:center;background:var(--acid);color:var(--on-accent);font-family:var(--font-display);font-size:1rem;transform:rotate(-6deg);transition:transform var(--dur) var(--ease)}.brand:hover .brand__mark{transform:rotate(6deg)}.brand__logo{display:block;height:32px;width:auto;max-width:min(130px,32vw);object-fit:contain;transform:rotate(-2deg);transition:transform var(--dur) var(--ease)}.brand:hover .brand__logo{transform:rotate(2deg) scale(1.05)}.brand__wordmark{white-space:nowrap}.nav{display:flex;align-items:center;gap:clamp(.9rem,2vw,2rem)}.nav__link{font-size:var(--step--1);letter-spacing:.04em;color:var(--muted);position:relative;padding-block:.25rem;transition:color var(--dur) var(--ease)}.nav__link:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--acid);transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease)}.nav__link:hover,.nav__link.is-active{color:var(--bone)}.nav__link.is-active:after,.nav__link:hover:after{transform:scaleX(1)}.menu-toggle{display:none;width:42px;height:42px;border:1px solid var(--line-strong);align-items:center;justify-content:center}.menu-toggle span{display:block;width:16px;height:1px;background:var(--bone);position:relative}.menu-toggle span:before,.menu-toggle span:after{content:"";position:absolute;left:0;width:16px;height:1px;background:var(--bone)}.menu-toggle span:before{top:-5px}.menu-toggle span:after{top:5px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:.82rem 1.35rem;border:1px solid var(--line-strong);background:transparent;color:var(--bone);font-size:var(--step--1);font-weight:500;letter-spacing:.05em;text-transform:uppercase;border-radius:var(--radius);transition:background var(--dur) var(--ease),color var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease);white-space:nowrap}.btn:hover{border-color:var(--bone);background:#f2efe60f}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn--primary{background:var(--acid);border-color:var(--acid);color:var(--on-accent)}.btn--primary:hover{background:var(--bone);border-color:var(--bone);color:var(--ink)}.btn--ghost{border-color:transparent;color:var(--muted);padding-inline:.5rem}.btn--ghost:hover{color:var(--bone);background:transparent}.btn--sm{padding:.5rem .85rem;font-size:var(--step--2)}.btn--danger{border-color:#ff6b5e66;color:var(--danger)}.btn--danger:hover{background:#ff6b5e1a;border-color:var(--danger)}.btn--icon{padding:.55rem;aspect-ratio:1}.btn--block{width:100%}.link-underline{border-bottom:1px solid var(--line-strong);padding-bottom:2px;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.link-underline:hover{border-color:var(--acid);color:var(--acid)}.hero{position:relative;min-height:min(100svh,900px);display:flex;align-items:flex-end;padding-top:120px;padding-bottom:var(--space-6);overflow:hidden;border-bottom:1px solid var(--line)}.hero__media{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.hero__media img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.04);opacity:.8}.hero__media:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,var(--ink) 2%,color-mix(in srgb,var(--ink) 78%,transparent) 38%,color-mix(in srgb,var(--ink) 28%,transparent) 100%),radial-gradient(120% 80% at 75% 10%,color-mix(in srgb,var(--acid) 12%,transparent),transparent 60%)}.hero__inner{position:relative;z-index:1;width:100%}.hero__title{font-size:var(--step-5);max-width:18ch;text-wrap:balance;margin-block:var(--space-3) var(--space-4)}.hero__title em{font-style:italic;color:var(--acid)}.hero__bottom{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--line)}.hero__aside{display:grid;gap:.35rem;font-size:var(--step--1);color:var(--muted);max-width:30ch}.ticker{border-block:1px solid var(--line);padding-block:.75rem;overflow:hidden;background:var(--ink-2)}.ticker__track{display:flex;gap:3rem;width:max-content;animation:ticker 38s linear infinite;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.ticker__track span{display:inline-flex;align-items:center;gap:3rem}.ticker__track span:after{content:"✦";color:var(--acid);font-size:.7em}@keyframes ticker{to{transform:translate(-50%)}}.card{border:1px solid var(--line);background:var(--ink-2);padding:var(--space-4);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease)}.card:hover{border-color:var(--line-strong);background:var(--ink-3)}.service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.service{background:var(--ink);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);min-height:320px;transition:background var(--dur) var(--ease);position:relative}.service:hover{background:var(--ink-2)}.service__index{font-family:var(--font-mono);font-size:var(--step--2);color:var(--muted-2)}.service__price{margin-top:auto;padding-top:var(--space-3);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--step--1);color:var(--acid)}.service ul{display:grid;gap:.3rem;font-size:var(--step--1);color:var(--muted)}.service ul li:before{content:"— ";color:var(--muted-2)}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--space-4)}.chip{padding:.42rem .9rem;border:1px solid var(--line);font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);transition:all var(--dur) var(--ease)}.chip:hover{color:var(--bone);border-color:var(--line-strong)}.chip.is-active{background:var(--acid);border-color:var(--acid);color:var(--on-accent)}.portfolio-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(.6rem,1.4vw,1.2rem)}.feature-rows{display:grid;gap:clamp(.6rem,1.4vw,1.2rem)}.feature-row{display:flex;gap:clamp(.6rem,1.4vw,1.2rem)}.feature-tile{position:relative;overflow:hidden;margin:0;flex:5 1 0;height:clamp(230px,30vw,430px);background:var(--ink-3);min-width:0}.feature-tile--wide{flex:7 1 0}.feature-tile img{width:100%;height:100%;object-fit:cover;filter:saturate(.92);transition:transform .8s var(--ease),filter .8s var(--ease)}.feature-tile:hover img{transform:scale(1.035);filter:saturate(1.05)}.feature-tile:hover .p-item__meta{opacity:1}.p-tile{margin:0;position:relative;overflow:hidden;background:var(--ink-3)}.p-tile img{width:100%;height:auto;display:block;filter:saturate(.92);transition:transform .8s var(--ease),filter .8s var(--ease)}.p-tile:hover img{transform:scale(1.03);filter:saturate(1.05)}.p-tile .p-item__meta{opacity:0}.p-tile:hover .p-item__meta,.p-tile:focus-within .p-item__meta{opacity:1}.p-item{grid-column:span 4;position:relative;overflow:hidden;background:var(--ink-3);display:block;aspect-ratio:4 / 3}.p-item--wide{grid-column:span 8;aspect-ratio:16 / 9}.p-item--tall{grid-column:span 4;aspect-ratio:3 / 4}.p-item img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease),filter .7s var(--ease);filter:saturate(.9)}.p-item:hover img{transform:scale(1.035);filter:saturate(1.05)}.p-item__meta{position:absolute;inset:auto 0 0 0;padding:var(--space-4) var(--space-3) var(--space-3);background:linear-gradient(to top,color-mix(in srgb,var(--ink) 92%,transparent),transparent);display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3);opacity:0;transition:opacity var(--dur) var(--ease)}.p-item:hover .p-item__meta,.p-item:focus-visible .p-item__meta{opacity:1}.p-item__title{font-family:var(--font-display);font-size:var(--step-1);line-height:1.1}.p-item__cat{font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.14em;color:var(--acid)}.masonry{display:flex;align-items:flex-start;gap:var(--masonry-gap, 10px)}.masonry__col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:var(--masonry-gap, 10px)}.tile{position:relative;display:block;width:100%;overflow:hidden;background:var(--ink-3);border:1px solid transparent;transition:border-color var(--dur) var(--ease)}.tile__img{width:100%;height:auto;display:block;opacity:0;transition:opacity .5s var(--ease),transform .6s var(--ease);transform:scale(1.005)}.tile__img,.lightbox__stage img,.p-tile img,.feature-tile img{-webkit-user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.tile.is-loaded .tile__img{opacity:1;transform:scale(1)}.tile:hover{border-color:var(--line-strong)}.tile.is-fav{border-color:var(--acid)}.tile__actions{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.35rem;opacity:0;transform:translateY(-4px);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.tile:hover .tile__actions,.tile:focus-within .tile__actions,.tile.is-fav .tile__actions{opacity:1;transform:none}.tile__btn{width:32px;height:32px;display:grid;place-items:center;background:#08080ab8;background:color-mix(in srgb,var(--ink) 72%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid color-mix(in srgb,var(--bone) 22%,transparent);color:var(--bone);transition:all var(--dur) var(--ease)}.tile__btn:hover{background:var(--bone);color:var(--ink)}.tile__btn.is-on{background:var(--acid);border-color:var(--acid);color:var(--on-accent)}.tile__count{position:absolute;left:.5rem;top:.5rem;font-family:var(--font-mono);font-size:var(--step--2);padding:.1rem .4rem;background:#08080ab3;background:color-mix(in srgb,var(--ink) 70%,transparent);border:1px solid var(--line);opacity:0;transition:opacity var(--dur) var(--ease)}.tile:hover .tile__count{opacity:1}.tile__ph{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;filter:blur(14px);transform:scale(1.06)}.gate{min-height:100svh;display:grid;place-items:center;padding:var(--space-6) var(--gutter);position:relative}.gate__card{width:min(460px,100%);border:1px solid var(--line);background:var(--ink-2);padding:clamp(1.5rem,4vw,2.75rem);position:relative}.gate__card:before{content:"";position:absolute;top:-1px;left:-1px;width:46px;height:3px;background:var(--acid)}.gate__title{font-size:var(--step-3);margin-block:var(--space-2) var(--space-3)}.gallery-bar{position:sticky;top:0;z-index:40;background:#08080ae6;background:color-mix(in srgb,var(--ink) 90%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.gallery-bar__inner{display:flex;align-items:center;gap:var(--space-3);min-height:68px;flex-wrap:wrap;padding-block:.75rem}.gallery-bar__title{font-family:var(--font-display);font-size:var(--step-1);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-body{padding-block:var(--space-5) var(--space-7)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#050507f7;background:color-mix(in srgb,var(--ink) 97%,transparent);display:grid;grid-template-rows:auto 1fr auto;animation:fade-in .18s var(--ease)}.lightbox__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:.9rem clamp(.9rem,3vw,1.8rem);border-bottom:1px solid var(--line)}.lightbox__stage{position:relative;display:grid;place-items:center;padding:clamp(.5rem,2vw,1.5rem);min-height:0}.lightbox__stage img{max-width:100%;max-height:calc(100svh - 190px);object-fit:contain;opacity:0;transition:opacity .26s var(--ease)}.lightbox__stage img.is-loaded{opacity:1}.lightbox__nav{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;display:grid;place-items:center;background:#08080a99;border:1px solid var(--line-strong);color:var(--bone);transition:all var(--dur) var(--ease)}.lightbox__nav:hover{background:var(--bone);color:var(--ink)}.lightbox__nav--prev{left:clamp(.4rem,2vw,1.6rem)}.lightbox__nav--next{right:clamp(.4rem,2vw,1.6rem)}.lightbox__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:.85rem clamp(.9rem,3vw,1.8rem);border-top:1px solid var(--line);font-size:var(--step--1);color:var(--muted);flex-wrap:wrap}@keyframes fade-in{0%{opacity:0}}.drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:flex;justify-content:flex-end;background:#05050799;background:color-mix(in srgb,var(--ink) 60%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade-in .16s var(--ease)}.drawer__panel{width:min(440px,100%);height:100%;background:var(--ink-2);border-left:1px solid var(--line);display:flex;flex-direction:column;animation:slide-in .26s var(--ease)}@keyframes slide-in{0%{transform:translate(24px);opacity:0}}.drawer__head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--line)}.drawer__body{padding:var(--space-4);overflow-y:auto;flex:1;display:grid;gap:var(--space-4);align-content:start}.drawer__foot{padding:var(--space-4);border-top:1px solid var(--line);display:grid;gap:.6rem}.list-block{border:1px solid var(--line);background:var(--ink);padding:var(--space-3);display:grid;gap:.6rem}.list-block__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.list-thumbs{display:flex;flex-wrap:wrap;gap:4px}.list-thumbs img{width:38px;height:38px;object-fit:cover;border:1px solid var(--line)}.field{display:grid;gap:.4rem}.field>label,.field__label{font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.input,.field input,.field textarea,.field select{width:100%;padding:.72rem .85rem;background:var(--ink);border:1px solid var(--line-strong);color:var(--bone);border-radius:var(--radius);transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);font-size:var(--step-0)}.field input:hover,.field textarea:hover,.field select:hover{border-color:var(--muted-2)}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--acid);background:var(--ink-2)}.field textarea{min-height:120px;resize:vertical}.field--error input,.field--error textarea{border-color:var(--danger)}.hint{font-size:var(--step--2);color:var(--muted-2)}.error-text{color:color-mix(in srgb,var(--danger) 70%,var(--bone));font-size:var(--step--1)}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.form-grid .span-2{grid-column:1 / -1}.alert{border:1px solid var(--line);border-left:3px solid var(--danger);background:color-mix(in srgb,var(--danger) 10%,transparent);padding:.75rem 1rem;font-size:var(--step--1);color:var(--bone)}.alert--ok{border-left-color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent);color:var(--bone)}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.16rem .5rem;font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.1em;border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap}.badge--ok{color:color-mix(in srgb,var(--ok) 45%,var(--bone));border-color:color-mix(in srgb,var(--ok) 35%,transparent);background:color-mix(in srgb,var(--ok) 10%,transparent)}.badge--warn{color:color-mix(in srgb,#ffcf6b 45%,var(--bone));border-color:color-mix(in srgb,#ffcf6b 35%,transparent);background:color-mix(in srgb,#ffcf6b 10%,transparent)}.badge--danger{color:color-mix(in srgb,var(--danger) 60%,var(--bone));border-color:color-mix(in srgb,var(--danger) 35%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent)}.badge--accent{color:color-mix(in srgb,var(--acid) 55%,var(--bone));border-color:color-mix(in srgb,var(--acid) 35%,transparent);background:color-mix(in srgb,var(--acid) 10%,transparent)}.table-wrap{border:1px solid var(--line);overflow-x:auto;background:var(--ink-2)}table.table{width:100%;border-collapse:collapse;font-size:var(--step--1);min-width:620px}.table th{text-align:left;font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:400;padding:.8rem 1rem;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:.85rem 1rem;border-bottom:1px solid var(--line);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:#f2efe606}.table .num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.admin-shell{display:grid;grid-template-columns:236px 1fr;min-height:100svh}.admin-side{border-right:1px solid var(--line);background:var(--ink-2);padding:var(--space-4) var(--space-3);position:sticky;top:0;height:100svh;display:flex;flex-direction:column;gap:var(--space-4)}.admin-side__nav{display:grid;gap:2px}.admin-side__link{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .7rem;font-size:var(--step--1);color:var(--muted);border-left:2px solid transparent;transition:all var(--dur) var(--ease)}.admin-side__link:hover{color:var(--bone);background:#f2efe60a}.admin-side__link.is-active{color:var(--bone);border-left-color:var(--acid);background:#c8ff380f}.admin-main{padding:var(--space-5) clamp(1rem,3vw,2.5rem) var(--space-7);min-width:0}.admin-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-3);padding-bottom:var(--space-4);margin-bottom:var(--space-4);border-bottom:1px solid var(--line)}.admin-banner{display:flex;align-items:center;flex-wrap:wrap;gap:.6rem;margin-bottom:var(--space-4);padding:.7rem .9rem;border:1px solid color-mix(in srgb,#ffcf6b 35%,transparent);background:color-mix(in srgb,#ffcf6b 10%,transparent);font-size:var(--step--1)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:var(--space-4)}.stat{background:var(--ink-2);padding:var(--space-3)}.stat__label{font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.stat__value{font-family:var(--font-display);font-size:var(--step-3);line-height:1.2;margin-top:.3rem}.panel{border:1px solid var(--line);background:var(--ink-2)}.panel__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}.panel__title{font-family:var(--font-display);font-size:var(--step-1)}.panel__body{padding:var(--space-4)}.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4)}.dropzone{border:1px dashed var(--line-strong);background:var(--ink);padding:var(--space-5) var(--space-4);text-align:center;display:grid;gap:.5rem;justify-items:center;transition:all var(--dur) var(--ease)}.dropzone:hover,.dropzone.is-over{border-color:var(--acid);background:#c8ff380a}.dropzone__title{font-family:var(--font-display);font-size:var(--step-2)}.upload-list{display:grid;gap:6px;margin-top:var(--space-3);max-height:220px;overflow-y:auto}.upload-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:.45rem .65rem;border:1px solid var(--line);font-size:var(--step--2);background:var(--ink)}.upload-row__name{font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.progress{height:3px;background:var(--ink-4);overflow:hidden;margin-top:var(--space-2)}.progress__bar{height:100%;background:var(--acid);transition:width .2s linear}.thumb-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px}.thumb-strip__item{position:relative;aspect-ratio:1;background:var(--ink-3);overflow:hidden;border:1px solid var(--line)}.thumb-strip__item img{width:100%;height:100%;object-fit:cover}.portfolio-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.portfolio-admin__card{border:1px solid var(--line);background:var(--ink);display:flex;flex-direction:column;min-width:0}.portfolio-admin__thumb{position:relative;aspect-ratio:4 / 3;background:var(--ink-3);overflow:hidden}.portfolio-admin__thumb img{width:100%;height:100%;object-fit:cover}.portfolio-admin__spinner{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.portfolio-admin__missing{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:.2rem;text-align:center;padding:.5rem;border:1px dashed color-mix(in srgb,var(--danger, #ff5c5c) 55%,transparent);background:color-mix(in srgb,var(--danger, #ff5c5c) 10%,transparent);font-size:var(--step--2);line-height:1.3}.portfolio-admin__missing span{color:var(--muted)}.portfolio-admin__flag{position:absolute;top:6px;left:6px;background:#08080ad1;background:color-mix(in srgb,var(--ink) 82%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.portfolio-admin__flag--right{left:auto;right:6px}.portfolio-admin__fields{display:grid;gap:4px;padding:6px}.portfolio-admin__fields .input{padding:.32rem .45rem;font-size:var(--step--2)}.portfolio-admin__actions{display:flex;flex-wrap:wrap;gap:3px;padding:0 6px 6px}.portfolio-admin__actions .btn{padding:.24rem .45rem;font-size:.63rem;letter-spacing:.03em}.admin-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:var(--space-4);overflow-x:auto}.admin-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.62rem .9rem;font-size:var(--step--1);color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}.admin-tab:hover{color:var(--bone)}.admin-tab.is-active{color:var(--bone);border-bottom-color:var(--acid)}.admin-tab__count{font-family:var(--font-mono);font-size:.62rem;padding:0 .28rem;border:1px solid var(--line-strong);color:var(--muted)}.logo-preview{border:1px solid var(--line);padding:1.2rem;display:grid;place-items:center;min-height:96px}.logo-preview--dark{background:var(--ink)}.logo-preview--paper{background:var(--paper)}.package-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.package-card{border:1px solid var(--line);background:var(--ink-2);display:flex;flex-direction:column;min-width:0}.package-card--draft{border-style:dashed;opacity:.75}.package-card__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid var(--line)}.package-card__body{padding:10px;display:grid;gap:8px}.block-row{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr) auto;gap:8px;align-items:start;border:1px solid var(--line);background:var(--ink);padding:8px}.block-row__actions{display:flex;gap:3px;padding-top:1.35rem}.sticky-actions{position:sticky;bottom:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:#08080aeb;background:color-mix(in srgb,var(--ink) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line)}.has-sticky-actions{padding-bottom:4.5rem}.theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.theme-swatch{border:1px solid var(--line);background:var(--ink-2);padding:0;text-align:left;overflow:hidden;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.theme-swatch:hover{border-color:var(--line-strong);transform:translateY(-1px)}.theme-swatch.is-active{border-color:var(--acid);box-shadow:inset 0 0 0 1px var(--acid)}.theme-swatch__surface{display:flex;align-items:center;gap:.5rem;padding:1rem .75rem;font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.12em}.theme-swatch__dot{width:14px;height:14px;border-radius:50%;flex:none}.theme-swatch__chips{display:flex;gap:2px;padding:0 .5rem .5rem}.theme-swatch__chips i{display:block;flex:1;height:7px}.theme-accent{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap}.theme-accent .field input[type=color]{width:46px;min-width:46px;flex:0 0 46px;height:38px;padding:2px;background:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius);cursor:pointer}.theme-preview{border:1px solid var(--line);background:var(--ink);padding:var(--space-3)}.theme-tokens{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-top:var(--space-3)}.theme-token{display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);padding:.35rem .5rem;font-size:var(--step--2)}.theme-token i{width:16px;height:16px;border:1px solid var(--line-strong);flex:none}.copy-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.copy-grid .field--wide{grid-column:1 / -1}@media (max-width: 900px){.copy-grid{grid-template-columns:1fr}}@media (max-width: 860px){.block-row{grid-template-columns:1fr}.block-row__actions{padding-top:0}}.paper-page{min-height:100svh;background:#efece3;color:#17171a;padding:var(--space-6) var(--gutter);background-image:radial-gradient(rgba(0,0,0,.045) 1px,transparent 0);background-size:4px 4px}.paper{max-width:780px;margin-inline:auto;background:#fbf9f4;border:1px solid #d8d3c6;box-shadow:0 24px 60px -30px #00000059;padding:clamp(1.6rem,5vw,4rem)}.paper .eyebrow{color:#6b685f}.prose{max-width:68ch;line-height:1.7;font-size:1rem}.prose h2{font-family:var(--font-display);font-size:1.5rem;margin:1.8em 0 .5em;font-weight:400}.prose h3{font-size:1.05rem;margin:1.5em 0 .4em;letter-spacing:.01em}.prose p{margin:0 0 1em}.prose ul,.prose ol{margin:0 0 1em;padding-left:1.2em;list-style:disc}.prose li{margin-bottom:.35em}.prose strong{font-weight:600}.prose hr{border:none;border-top:1px solid #ddd8ca;margin:2em 0}.paper .field input,.paper .field textarea{background:#fff;border-color:#cfc9ba;color:#17171a}.paper .field>label{color:#6b685f}.paper .btn{border-color:#cfc9ba;color:#17171a}.paper .btn:hover{background:#e9e5da;border-color:#a9a294}.paper .btn--primary{background:var(--acid);border-color:var(--acid);color:#0a0a0a}.paper .btn--primary:hover{background:#17171a;border-color:#17171a;color:#fbf9f4}.paper .btn--ghost{color:#6b685f;border-color:transparent}.paper .btn--ghost:hover{color:#17171a;background:#e9e5da}.paper .badge{color:#6b685f;border-color:#cfc9ba}.paper code{background:#eae6db;padding:.1em .35em;font-size:.85em}.sig-line{border-bottom:1px solid #17171a;font-family:var(--font-display);font-size:1.5rem;padding-bottom:.2rem;min-height:2.4rem}.sig-stamp{display:inline-flex;align-items:center;gap:.5rem;border:1px solid #1f7a4d;color:#1f7a4d;padding:.4rem .7rem;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.site-footer{border-top:1px solid var(--line);padding-block:var(--space-6) var(--space-4);background:var(--ink)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--space-5);align-items:start}.footer-brand{font-family:var(--font-display);font-size:var(--step-3);line-height:1.05;max-width:16ch}.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--step--2);color:var(--muted-2);letter-spacing:.06em}.footer-list{display:grid;gap:.4rem;font-size:var(--step--1);color:var(--muted)}.footer-list a:hover{color:var(--acid)}.loading{display:grid;place-items:center;min-height:40vh;gap:var(--space-3);color:var(--muted);font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.16em;text-transform:uppercase}.spinner{width:26px;height:26px;border:1px solid var(--line-strong);border-top-color:var(--acid);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.is-in{opacity:1;transform:none}.page-enter{animation:page-in .42s var(--ease)}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}.toast{position:fixed;bottom:1.4rem;left:50%;transform:translate(-50%);z-index:300;background:var(--bone);color:var(--ink);padding:.7rem 1.1rem;font-size:var(--step--1);font-weight:500;box-shadow:0 18px 40px -18px #000000b3;animation:toast-in .22s var(--ease);max-width:min(92vw,480px);text-align:center}.toast--error{background:var(--danger);color:#1a0605}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:grid;place-items:center;padding:var(--space-4)}.modal__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,#000 62%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal__panel{position:relative;width:min(30rem,100%);padding:var(--space-4);background:var(--surface-raised, var(--ink-2));border:1px solid var(--line-strong);box-shadow:0 24px 60px -20px #000c}.empty{border:1px dashed var(--line-strong);padding:var(--space-6) var(--space-4);text-align:center;color:var(--muted);display:grid;gap:var(--space-2);justify-items:center}@media (max-width: 1080px){.admin-shell{grid-template-columns:1fr}.admin-side{position:static;height:auto;flex-direction:row;align-items:center;overflow-x:auto;border-right:none;border-bottom:1px solid var(--line);padding:var(--space-2) var(--space-3)}.admin-side__nav{grid-auto-flow:column;display:grid;gap:0}.admin-side__link{border-left:none;border-bottom:2px solid transparent;white-space:nowrap}.admin-side__link.is-active{border-left-color:transparent;border-bottom-color:var(--acid)}.p-item{grid-column:span 6}.p-item--wide{grid-column:span 12}.footer-grid{grid-template-columns:1fr 1fr}}@media (max-width: 760px){.nav{display:none}.menu-toggle{display:flex}.site-header.is-open .nav{display:flex;position:fixed;inset:74px 0 auto 0;flex-direction:column;align-items:flex-start;gap:1.1rem;padding:var(--space-4) var(--gutter) var(--space-5);background:var(--ink);border-bottom:1px solid var(--line)}.hero{min-height:auto;padding-top:140px}.feature-row{flex-direction:column}.feature-tile,.feature-tile--wide{flex:0 0 auto;height:auto;aspect-ratio:4 / 3}.footer-note{display:none}.p-item,.p-item--wide,.p-item--tall{grid-column:span 12;aspect-ratio:4 / 3}.footer-grid{grid-template-columns:1fr;gap:var(--space-4)}.admin-side{flex-wrap:wrap}.lightbox__stage img{max-height:calc(100svh - 230px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none}}.session-create{margin-bottom:var(--space-4)}.session-create__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-3)}.session-create__grid .span-2{grid-column:1 / -1}.session-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.session-card{display:grid;grid-template-columns:66px 1fr 20px;gap:1rem;align-items:start;background:var(--ink-2);padding:var(--space-3);color:var(--bone);transition:background var(--dur) var(--ease)}.session-card:hover{background:#c8ff380b}.session-card__date{border:1px solid var(--line-strong);min-height:66px;display:grid;place-content:center;text-align:center;background:var(--ink)}.session-card__date span{font-family:var(--font-mono);font-size:var(--step--2);text-transform:uppercase;letter-spacing:.14em;color:var(--acid)}.session-card__date strong{font-family:var(--font-display);font-size:var(--step-2);line-height:1;font-weight:400}.session-card__body{min-width:0}.session-card__title{font-family:var(--font-display);font-size:var(--step-1);line-height:1.15;margin:.55rem 0 .2rem}.session-card__arrow{color:var(--muted-2);font-size:1.1rem}.session-progress{display:flex;justify-content:space-between;gap:1rem;margin-top:.65rem;font-family:var(--font-mono);font-size:var(--step--2);color:var(--muted-2)}.session-progress__track{height:3px;width:100%;background:var(--line);margin-top:.35rem;overflow:hidden}.session-progress__track>span{display:block;height:100%;background:var(--acid);transition:width .3s var(--ease)}.session-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--space-4);align-items:start}.session-main{min-width:0;display:grid;gap:var(--space-3)}.session-side{position:sticky;top:var(--space-3);display:grid;gap:var(--space-3)}.session-typebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-3);align-items:start;padding:var(--space-3);border:1px solid var(--line);border-left:3px solid var(--acid);background:var(--ink-2)}.session-typebar>.hint{grid-column:1 / -1}.session-typebar label{display:block;margin-bottom:.45rem}.session-typebar select,.session-typebar input{min-height:46px}.session-savebar{display:flex;align-items:center;gap:.7rem;padding:.55rem .8rem;border:1px solid var(--line);background:color-mix(in srgb,var(--ink-2) 92%,transparent);position:sticky;top:0;z-index:4;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.session-savebar .btn{margin-left:auto}.save-state{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}.save-state--unsaved{color:#ffcf6b}.save-state--saving{color:var(--acid)}.save-state--saved{color:var(--ok)}.save-state--error{color:var(--danger)}.q-section{border:1px solid var(--line);background:var(--ink-2);scroll-margin-top:4rem}.q-section__head{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);background:#f2efe605}.q-section__head h2{font-family:var(--font-display);font-size:var(--step-1);margin:.2rem 0 .25rem}.q-section__head .hint{max-width:64ch}.q-list{display:grid;gap:1.25rem;padding:var(--space-4)}.q-field{display:grid;gap:.4rem}.q-field__label{font-family:var(--font-sans);font-size:var(--step-0);line-height:1.4;color:var(--bone);letter-spacing:0;text-transform:none}.q-field__help{font-size:var(--step--2);color:var(--muted-2)}.q-field .input,.q-field textarea{background:var(--ink)}.q-field textarea{min-height:76px}.q-options{display:flex;flex-wrap:wrap;gap:.4rem}.q-check{display:inline-flex;align-items:center;gap:.45rem;padding:.38rem .7rem;border:1px solid var(--line-strong);cursor:pointer;font-size:var(--step--1);color:var(--muted);background:var(--ink);transition:all var(--dur) var(--ease)}.q-check input{accent-color:var(--acid);width:14px;height:14px}.q-check:hover{border-color:var(--muted-2);color:var(--bone)}.q-check.is-selected{border-color:var(--acid);background:#c8ff3814;color:var(--bone)}.reference-uploader{padding:var(--space-4);border-bottom:1px solid var(--line);display:grid;gap:var(--space-3)}.reference-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-3)}.reference-card{border:1px solid var(--line-strong);background:var(--ink);min-width:0}.reference-card.is-deleting{opacity:.45}.reference-card__image{aspect-ratio:4 / 3;background:var(--ink-2);overflow:hidden}.reference-card__image img{width:100%;height:100%;object-fit:cover}.reference-card__placeholder{display:grid;place-items:center;height:100%;color:var(--muted-2);font-family:var(--font-mono);font-size:var(--step--2)}.reference-card figcaption{padding:.55rem}.reference-card figcaption .input{padding:.5rem;font-size:var(--step--1)}.session-fact{display:grid;gap:.18rem;padding-bottom:.85rem;border-bottom:1px solid var(--line)}.session-fact:last-of-type{border-bottom:0}.session-fact strong{font-weight:500;font-size:var(--step--1);line-height:1.4}.session-recap textarea{font-family:var(--font-mono);font-size:var(--step--1);line-height:1.65}.schedule-editor{margin-bottom:var(--space-3)}@media (max-width: 1080px){.session-layout{grid-template-columns:1fr}.session-side{position:static;grid-row:1}.session-typebar{grid-template-columns:1fr}}@media (max-width: 720px){.session-typebar,.q-section__head,.q-list{padding:var(--space-3)}.session-savebar{position:static;flex-wrap:wrap}.session-savebar .btn{margin-left:0}.session-card{grid-template-columns:54px 1fr}.session-card__arrow{display:none}}@media print{body{background:#fff!important;color:#111!important}.admin-side,.admin-banner,.session-toolbar,.session-side,.session-savebar,.reference-uploader .btn,.session-recap .btn,.btn,.toast{display:none!important}.admin-shell{display:block!important}.admin-main{padding:0!important}.session-layout{display:block!important}.q-section,.panel{border-color:#bbb!important;background:#fff!important;break-inside:avoid;page-break-inside:avoid}.q-section__head,.q-list,.panel__head,.panel__body{background:#fff!important;color:#111!important}.q-field__label,.q-field__help,.hint,.badge,.eyebrow{color:#333!important}.q-field .input,.q-field textarea,.session-recap textarea{background:#fff!important;color:#111!important;border-color:#ccc!important}.reference-grid{grid-template-columns:repeat(2,1fr)}}
