@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/47f136985ef5b5cb-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/4ead58c4dcc3f285-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/28a2004cf8372660-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400 900;font-display:swap;src:url(/_next/static/media/eaead17c7dbfcd5d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Playfair Display Fallback;src:local("Times New Roman");ascent-override:97.25%;descent-override:22.56%;line-gap-override:0.00%;size-adjust:111.26%}.__className_0a80b4{font-family:Playfair Display,Playfair Display Fallback;font-style:normal}.__variable_0a80b4{--font-playfair:"Playfair Display","Playfair Display Fallback"}@font-face{font-family:Funnel Sans;font-style:normal;font-weight:300 800;font-display:swap;src:url(/_next/static/media/44c515b3114427f5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Funnel Sans;font-style:normal;font-weight:300 800;font-display:swap;src:url(/_next/static/media/3e78b4cc8d71c70e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Funnel Sans Fallback;src:local("Arial");ascent-override:98.88%;descent-override:24.72%;line-gap-override:0.00%;size-adjust:101.13%}.__className_18cc35{font-family:Funnel Sans,Funnel Sans Fallback;font-style:normal}.__variable_18cc35{--font-funnel:"Funnel Sans","Funnel Sans Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/73cb51aac9c97f90-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/d26bbd13d6b70f89-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/20535187d867b7b9-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/5356a6a4f2c8c8d8-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/db96af6b531dc71f-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:IBM Plex Mono Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_595324{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_595324{--font-plex-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}

/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.fixed{position:fixed}.static{position:static}.block{display:block}.contents{display:contents}.flex{display:flex}.shrink{flex-shrink:1}.resize{resize:both}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--grid-min:#eae7e1;--grid-maj:#d9d5cb;--panel:#fff;--panel-alt:#eeece7;--viewport:#f5f3ee;--ink:#201f1c;--ink-dim:#5c5a54;--ink-faint:#8f8c84;--blue:#2f6fe0;--blue-dim:#2f6fe01a;--amber:#b97a1e;--border:#ddd9d0;--axis-x:#e5566b;--axis-y:#4fcb74;--axis-z:#4c9eff}:root[data-theme=dark]{--grid-min:#1d1e21;--grid-maj:#2a2c33;--panel:#202226;--panel-alt:#26282d;--viewport:#17181b;--ink:#e9eaec;--ink-dim:#9297a0;--ink-faint:#5c5f66;--blue:#4c9eff;--blue-dim:#4c9eff24;--amber:#ffb454;--border:#34373d}*{box-sizing:border-box}html{scrollbar-gutter:stable}body,html{margin:0;padding:0}body{background:var(--viewport);color:var(--ink);font-family:var(--font-funnel),ui-sans-serif,system-ui,sans-serif;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-ms-overflow-style:none;scrollbar-width:none;transition:background-color .15s,color .15s}body::-webkit-scrollbar{display:none}*{-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{display:none}::selection{background:var(--blue);color:var(--viewport)}a,button{color:inherit}button{font:inherit;cursor:pointer;background:0 0;border:none}:focus-visible{outline:1.5px solid var(--blue);outline-offset:2px}.mono{font-family:var(--font-plex-mono),ui-monospace,monospace}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.app-shell{display:flex;flex-direction:column;min-height:100vh}.ribbon{flex:none;height:32px;background:var(--panel-alt);border-bottom:1px solid var(--border);display:flex;align-items:stretch;padding:0 10px;position:sticky;top:0;z-index:60;transition:background-color .15s ease,border-color .15s ease}.ribbon-tabs{justify-content:space-between;width:100%}.ribbon-group,.ribbon-tabs{display:flex;align-items:center}.ribbon-group{gap:2px}.ribbon-tab{display:flex;align-items:center;height:24px;margin:4px 1px;padding:0 12px;font-size:.72rem;letter-spacing:.02em;color:var(--ink-dim);border:1px solid transparent;border-radius:2px;transition:color .15s ease,background .15s ease,border-color .15s ease;white-space:nowrap}.ribbon-tab:hover{color:var(--ink)}.ribbon-tab.active{color:var(--ink);background:var(--panel);border-color:var(--border)}.ribbon-menu{position:relative}.ribbon-dropdown{position:absolute;top:calc(100% + 1px);left:1px;min-width:168px;background:var(--panel);border:1px solid var(--border);z-index:61;padding:4px}.ribbon-dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 10px;font-size:.74rem;color:var(--ink-dim);text-align:left;transition:background .15s ease,color .15s ease}.ribbon-dropdown-item:hover:not(:disabled){background:var(--panel-alt);color:var(--ink)}.ribbon-dropdown-item:disabled{color:var(--ink-faint);cursor:not-allowed}.ribbon-dropdown-hint{font-size:.6rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint)}.ribbon-dropdown-hint,.statusbar{font-family:var(--font-plex-mono),ui-monospace,monospace}.statusbar{flex:none;height:26px;background:var(--panel);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;padding:0 14px;position:sticky;bottom:0;z-index:60;font-size:.68rem;transition:background-color .15s ease,border-color .15s ease}.coord-live{color:var(--ink-dim)}.ribbon-tab.theme-toggle{width:26px;padding:0;font-size:.8rem;justify-content:center}.workspace{flex:1;display:flex;align-items:stretch;min-height:0}.workspace-main{flex:1;min-width:0;background-image:linear-gradient(var(--grid-min) 1px,transparent 1px),linear-gradient(90deg,var(--grid-min) 1px,transparent 1px),linear-gradient(var(--grid-maj) 2px,transparent 2px),linear-gradient(90deg,var(--grid-maj) 2px,transparent 2px);background-size:24px 24px,24px 24px,120px 120px,120px 120px;background-attachment:fixed;transition:background-color .15s ease}.sidebar{flex:none;width:360px;background:var(--panel);border-left:1px solid var(--border);transition:background-color .15s ease,border-color .15s ease}.sidebar-inner{position:sticky;top:32px;padding:20px 20px 28px;max-height:calc(100vh - 32px);overflow-y:auto}.sidebar-inner h4{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;margin:0 0 12px;padding-bottom:8px}.sidebar-inner h4,.sidebar-row{border-bottom:1px solid var(--border)}.sidebar-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:.78rem}.sidebar-row .k{color:var(--ink-faint);flex:none}.sidebar-row .v{color:var(--ink);text-align:right}.sidebar-empty{font-size:.78rem;color:var(--ink-faint);padding:10px 0}.sidebar-description{margin-top:24px}.sidebar-description p{font-size:.85rem;line-height:1.65;color:var(--ink-dim);margin:0;white-space:pre-line}@media (max-width:900px){.workspace{flex-direction:column}.sidebar{width:100%;border-left:none;border-top:1px solid var(--border)}.sidebar-inner{position:static;max-height:none}}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;position:relative;z-index:3}.works-grid{grid-template-columns:1fr;gap:clamp(40px,6vw,72px)}.works-grid .card-figure{aspect-ratio:auto}.works-grid .card-image{height:auto;object-fit:contain}.works-grid .card-placeholder{min-height:240px}.project-card{position:relative;display:block;color:inherit;cursor:pointer}.card-figure{position:relative;aspect-ratio:1/1;background:var(--panel);border:1px solid var(--border);overflow:hidden}.card-image{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.88) contrast(1.05)}.card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-size:.75rem;letter-spacing:.05em}.card-title{font-size:.8rem;font-weight:600;letter-spacing:-.005em;margin:0;max-height:0;opacity:0;overflow:hidden;transition:max-height .35s ease,opacity .3s ease,margin-top .35s ease}.card-title.show{max-height:2.4rem;opacity:1;margin-top:8px}.cad-cursor{position:fixed;inset:0;pointer-events:none;z-index:300;opacity:0}body.cad-cursor-on .cad-cursor{opacity:1}body.cad-cursor-on,body.cad-cursor-on *{cursor:none!important}.cc-seg{position:fixed;background:rgba(76,158,255,.35);top:-100px;left:-100px}.cc-v-seg{width:1px;transform:translateX(-50%)}.cc-h-seg{height:1px;transform:translateY(-50%)}.cc-box{position:fixed;width:10px;height:10px;top:-100px;left:-100px;transform:translate(-50%,-50%);border:1px solid var(--blue);background:rgba(76,158,255,.15);opacity:.55;transition:opacity .12s ease,background-color .12s ease}.cc-box.is-interactive{opacity:1;background:rgba(76,158,255,.85)}@media (prefers-reduced-motion:reduce){.cad-cursor{display:none}body.cad-cursor-on,body.cad-cursor-on *{cursor:auto!important}}.gizmo{left:16px;bottom:40px;width:52px;height:52px;z-index:200;opacity:.9}.gizmo,.selection-box{position:fixed;pointer-events:none}.selection-box{display:none;border:1px solid rgba(76,158,255,.45);background:rgba(76,158,255,.07);z-index:250}@media (max-width:640px){.ribbon-tab{font-size:.66rem;padding:0 8px}.statusbar{font-size:.6rem;padding:0 8px}.gizmo{width:40px;height:40px;left:10px;bottom:40px}.project-grid:not(.works-grid){grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}}.home-hero-link,.mobile-nav,.mobile-props{display:none}@media (max-width:820px){.gizmo,.ribbon,.sidebar,.statusbar{display:none}.workspace-main{background-image:none}.cad-cursor{display:none}.mobile-nav{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;height:52px;padding:0 12px;z-index:70;background:color-mix(in srgb,var(--panel-alt) 82%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);opacity:1;visibility:visible;transition:opacity .3s ease-in-out,visibility .3s ease-in-out,background-color .15s ease,border-color .15s ease}.mobile-nav-hidden{opacity:0;visibility:hidden}.mobile-nav-home{justify-content:flex-end;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:none}.mobile-nav-brand{font-family:var(--font-playfair),Georgia,serif;font-size:1.1rem;color:var(--ink)}.mobile-menu{position:relative}.mobile-menu-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--ink)}.mobile-menu-icon,.mobile-menu-icon:after,.mobile-menu-icon:before{content:"";display:block;width:18px;height:1.5px;background:currentColor;transition:transform .25s ease,opacity .2s ease,background-color .2s ease}.mobile-menu-icon{position:relative}.mobile-menu-icon:before{position:absolute;top:-6px;left:0}.mobile-menu-icon:after{position:absolute;top:6px;left:0}.mobile-menu-toggle.active .mobile-menu-icon{background:transparent}.mobile-menu-toggle.active .mobile-menu-icon:before{transform:translateY(6px) rotate(45deg)}.mobile-menu-toggle.active .mobile-menu-icon:after{transform:translateY(-6px) rotate(-45deg)}.mobile-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--panel);border:1px solid var(--border);box-shadow:0 12px 24px rgba(0,0,0,.18);z-index:71;padding:6px}.mobile-menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;font-size:.82rem;color:var(--ink-dim);text-align:left;transition:color .15s ease,background .15s ease}.mobile-menu-item.active,.mobile-menu-item:hover{color:var(--ink);background:var(--panel-alt)}.mobile-menu-submenu{display:flex;flex-direction:column;padding:0 0 2px 14px}.mobile-menu-subitem{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 6px;font-size:.76rem;color:var(--ink-dim);text-align:left}.mobile-menu-subitem:hover:not(:disabled){color:var(--ink)}.mobile-menu-subitem:disabled{color:var(--ink-faint);cursor:not-allowed}.mobile-menu-theme-icon{font-size:.9rem;line-height:1}.home-grid{display:none}.home-hero-link{display:inline-flex;align-items:center;gap:6px;margin-top:20px;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);padding-bottom:2px;border-bottom:1px solid var(--blue-dim)}.works-grid .card-title{max-height:none;opacity:1;overflow:visible;margin-top:10px;font-size:.95rem}.mobile-props{display:block;position:relative;max-height:50vh;overflow:hidden;background:var(--panel);border:1px solid var(--border);margin:0 0 20px;transition:max-height .4s ease,background-color .15s ease,border-color .15s ease}.mobile-props.expanded{max-height:3000px}.mobile-props-inner{padding:18px 18px 44px}.mobile-props-name{font-family:var(--font-playfair),Georgia,serif;font-size:1.5rem;font-weight:600;margin:0 0 8px;color:var(--ink)}.mobile-props-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.7rem;letter-spacing:.04em;color:var(--ink-dim);margin:0 0 14px}.mobile-props-desc{font-size:.86rem;line-height:1.6;color:var(--ink-dim);margin:0;white-space:pre-line}.mobile-props-toggle{position:absolute;left:0;right:0;bottom:0;width:100%;height:44px;display:flex;align-items:center;justify-content:center;font-size:.58rem;line-height:1;color:var(--ink);background:linear-gradient(to bottom,transparent,var(--panel) 60%)}.mobile-props.expanded .mobile-props-toggle{background:var(--panel)}}