:root{font-family:Manrope,system-ui,sans-serif;color:#f4ead8;background:#0c0806;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--cream: #f3ead6;--ink: #2a2118;--muted: #7d6f5e;--accent: #d08a4a;--paper: #f6edd8}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-width:320px;overflow:hidden;overscroll-behavior:none;background:#0c0806}.site{position:fixed;inset:0;overflow:hidden;background:#0c0806}.scene{position:absolute;inset:0;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;transition:filter 1.1s ease}.scene.can-pan{cursor:grab}.scene.can-pan:active{cursor:grabbing}.night-mode .scene{filter:brightness(.42) saturate(.72) contrast(1.08)}.camera{position:absolute;left:50%;top:50%;width:1280px;height:720px;transform-origin:var(--focus-x, 50%) var(--focus-y, 46%);transition:transform 1.15s cubic-bezier(.16,.84,.22,1)}.scene.is-inspecting .camera{filter:blur(7px) saturate(.8) brightness(.55)}.art-board{--mx: 0;--my: 0;position:absolute;inset:0}.plate-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;transform:translate3d(calc(var(--mx) * 10px),calc(var(--my) * 6px),0) scale(1.03);transition:transform .6s ease-out}.site.is-waking .plate-img{animation:scene-push 5.4s cubic-bezier(.16,.7,.2,1) both}@keyframes scene-push{0%{transform:translate3d(0,18px,0) scale(1.16);filter:blur(8px) brightness(.35)}to{transform:translateZ(0) scale(1.03);filter:none}}.ambient{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 42% 48% at var(--lamp-x, 22%) var(--lamp-y, 18%),#ffe7b855 0%,#ffd27a14 38%,transparent 70%),radial-gradient(ellipse 80% 70% at 50% 100%,#00000088 0%,transparent 55%);mix-blend-mode:soft-light}.motes{position:absolute;inset:0;pointer-events:none;overflow:hidden}.motes span{position:absolute;left:calc(8% + (var(--n) * 4.6%));top:110%;width:2px;height:2px;border-radius:50%;background:#ffe7b8;opacity:.22;animation:mote 11s linear infinite;animation-delay:calc(var(--n) * -.7s)}@keyframes mote{0%{transform:translateZ(0) scale(.6);opacity:0}12%{opacity:.35}to{transform:translate3d(40px,-120vh,0) scale(1.2);opacity:0}}.grain{position:fixed;inset:0;z-index:70;pointer-events:none;opacity:.18;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E")}.night-overlay{position:fixed;inset:0;z-index:6;background:radial-gradient(ellipse 34% 32% at var(--lamp-x, 22%) var(--lamp-y, 18%),#0000 0%,#050302d4 78%);opacity:0;pointer-events:none;transition:opacity 1s}.night-mode .night-overlay{opacity:.92}.letterbox{position:fixed;left:0;right:0;height:7.5vh;background:#050302;z-index:28;pointer-events:none;transition:transform 1.4s cubic-bezier(.22,.8,.2,1)}.letterbox.top{top:0}.letterbox.bottom{bottom:0}.site.is-awake:not(.has-inspect) .letterbox.top{transform:translateY(-100%)}.site.is-awake:not(.has-inspect) .letterbox.bottom{transform:translateY(100%)}.veil{position:fixed;inset:0;z-index:30;background:#050302;opacity:0;pointer-events:auto}.site.is-dark .veil{opacity:1}.site.is-waking .veil{animation:veil-lift 2.4s cubic-bezier(.4,0,.2,1) .35s both}.site.is-awake .veil{display:none}@keyframes veil-lift{0%{opacity:1}to{opacity:0}}.greeting{position:fixed;inset:0;z-index:31;display:grid;place-items:center;pointer-events:none;opacity:0;text-align:center}.greeting-kicker{display:block;font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:#e8c48a;margin-bottom:12px;font-family:Manrope,sans-serif}.greeting-word{display:block;font-family:Marck Script,cursive;font-size:clamp(56px,12vw,148px);line-height:.9;color:#f7ead2;text-shadow:0 8px 60px #ffdca44d}.site.is-waking .greeting{animation:greeting-life 4.2s cubic-bezier(.3,.7,.3,1) .8s both}.site.is-awake .greeting{display:none}@keyframes greeting-life{0%{opacity:0;filter:blur(18px);transform:scale(.96)}24%{opacity:1;filter:blur(0)}70%{opacity:1}to{opacity:0;filter:blur(16px);transform:scale(1.05)}}.hotspot{position:absolute;border:0;background:transparent;padding:0;cursor:pointer;border-radius:28px;transform:translate3d(calc(var(--mx, 0) * var(--pf, 0) * 22px),calc(var(--my, 0) * var(--pf, 0) * 12px),0);will-change:transform;outline-offset:4px}.hotspot:focus-visible{outline:2px solid #fff1c5}.hotspot:after{content:"";position:absolute;inset:12%;border-radius:40%;background:radial-gradient(ellipse,#ffe7b826 0%,transparent 72%);opacity:0;transition:opacity .35s}.hotspot:hover:after,.hotspot:focus-visible:after,.hotspot.is-lit:after{opacity:1}.scene.is-debug .hotspot{outline:1px dashed #ffb347;background:#ffb34722}.hotspot-label{position:absolute;left:50%;top:calc(100% + 4px);transform:translate(-50%,-6px);font-family:Marck Script,cursive;font-size:clamp(20px,1.8vw,30px);line-height:1;color:#4b3624;opacity:0;pointer-events:none;white-space:nowrap;text-shadow:0 1px 0 #f7ecd4bb,0 0 6px #f7ecd455,0 2px 22px #f7ecd444;transition:opacity .22s,transform .22s}.hotspot.flip .hotspot-label{top:auto;bottom:calc(100% + 4px);transform:translate(-50%,6px)}.hotspot-label.at{transform:translate(-50%,-50%)}.hotspot:hover .hotspot-label,.hotspot:focus-visible .hotspot-label{opacity:1;transform:translate(-50%)}.hotspot:hover .hotspot-label.at,.hotspot:focus-visible .hotspot-label.at{transform:translate(-50%,-50%)}.night-mode .hotspot:hover .hotspot-label{opacity:0}.night-mode .hotspot:focus-visible .hotspot-label{color:#f7e9ca;text-shadow:0 0 6px #ffd9a0aa,0 0 18px #ffd9a077,0 0 40px #ffd9a044}.hover-light{position:fixed;z-index:7;pointer-events:none;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,#ffe2a52b,#ffd27a12 52%,#0000 76%);mix-blend-mode:screen;filter:blur(5px);animation:hover-light-in .3s ease both}@keyframes hover-light-in{0%{opacity:0}}.night-caption{position:fixed;z-index:7;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap;font-family:Marck Script,cursive;font-size:clamp(20px,1.8vw,30px);line-height:1;color:#fdf0d4;text-shadow:0 0 6px #ffd9a0cc,0 0 18px #ffd9a088,0 0 44px #ffbe6855;animation:night-caption-in .28s ease both}@keyframes night-caption-in{0%{opacity:0}}.filament-container{position:absolute;z-index:40;pointer-events:none;opacity:0;transform:rotate(-18deg);transform-origin:center center;transition:opacity .35s ease}.filament-container.is-live{opacity:1;animation:filament-tremble .9s linear infinite}.filament-svg{width:100%;height:100%;display:block;isolation:isolate}.filament-svg path{fill:none;stroke-linecap:round;stroke-linejoin:round}.filament-svg .filament-halo{stroke:#ff841a8c;stroke-width:2.4;filter:blur(2.2px);mix-blend-mode:screen}.filament-svg .filament-wire{stroke:#35190a;opacity:.88;stroke-width:.9}.filament-svg .filament-spark{stroke:#ffe9b8;opacity:.95;stroke-width:.45;filter:drop-shadow(0 0 1px #ffd985)}@keyframes filament-tremble{0%{transform:translate(0) rotate(0) scale(1);filter:brightness(1);opacity:1}8%{transform:translate(-.5px,.4px) rotate(-.7deg) scale(.99);filter:brightness(.9);opacity:.82}14%{transform:translate(.4px,-.3px) rotate(.5deg) scale(1.01);filter:brightness(1.08);opacity:.94}23%{transform:translate(-.3px,.2px) rotate(-.4deg) scale(.995);filter:brightness(.96);opacity:.87}31%{transform:translate(.5px,.25px) rotate(.6deg) scale(1.015);filter:brightness(1.12);opacity:1}44%{transform:translate(.2px,-.35px) rotate(-.5deg) scale(.98);filter:brightness(.88);opacity:.78}56%{transform:translate(-.4px,.3px) rotate(.55deg) scale(1.01);filter:brightness(1.05);opacity:.92}67%{transform:translate(.35px,-.2px) rotate(-.35deg) scale(1.008);filter:brightness(1.1);opacity:.97}78%{transform:translate(-.25px,.3px) rotate(.4deg) scale(.99);filter:brightness(.93);opacity:.85}89%{transform:translate(.3px,-.25px) rotate(-.5deg) scale(1.012);filter:brightness(1.06);opacity:.95}to{transform:translate(0) rotate(0) scale(1);filter:brightness(1);opacity:1}}.steam{position:absolute;z-index:6;pointer-events:none;opacity:0;transform:translate3d(calc(var(--mx, 0) * 10px),calc(var(--my, 0) * 6px),0);transition:opacity .45s ease,transform .6s ease-out}.steam.is-live{opacity:1}.steam span{position:absolute;bottom:0;left:24%;width:17%;height:62%;border-radius:50%;background:linear-gradient(180deg,#f5efe800,#f5efe84d 42%,#f5efe880 76%,#f5efe800);filter:blur(8px);mix-blend-mode:screen;opacity:0;animation:steam-rise 5s ease-in-out infinite;animation-play-state:paused}.steam.is-live span{animation-play-state:running}.steam span:nth-child(1){left:20%;animation-delay:0s}.steam span:nth-child(2){left:40%;width:21%;height:70%;animation-delay:-.9s}.steam span:nth-child(3){left:58%;animation-delay:-1.8s}.steam span:nth-child(4){left:30%;height:48%;animation-delay:-2.7s}.steam span:nth-child(5){left:60%;width:13%;height:44%;animation-delay:-3.6s}.steam span:nth-child(6){left:46%;width:14%;height:54%;animation-delay:-4.5s}@keyframes steam-rise{0%{transform:translate3d(0,16%,0) rotate(3deg) scale(.75);opacity:0}25%{opacity:.62}55%{transform:translate3d(-10%,-36%,0) rotate(-5deg) scale(1.06);opacity:.45}to{transform:translate3d(7%,-84%,0) rotate(4deg) scale(1.35);opacity:0}}.desk-scratch{position:absolute;z-index:1;left:clamp(10px,2.4vw,34px);bottom:clamp(8px,1.8vh,22px);pointer-events:none;font-family:Marck Script,cursive;font-size:clamp(12px,1.1vw + .4vh,20px);color:#1a1008;opacity:.34;transform:rotate(-5deg);mix-blend-mode:multiply}.inspect-backdrop{position:fixed;inset:0;z-index:40;background:#070503c4;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:grid;place-items:center;padding:18px}.inspect-object{position:relative;width:min(1080px,100%);height:min(78vh,820px);border-radius:10px;overflow:hidden;box-shadow:0 40px 120px #000000d0,0 0 0 1px #f6e2b81f;transform-origin:center}.inspect-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.inspect-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0000 28%,#120c0888 68%,#120c08d8),linear-gradient(180deg,#0000 40%,#120c0888);pointer-events:none}.inspect-matter{position:absolute;right:0;top:0;bottom:0;width:min(46%,460px);padding:22px 22px 28px;color:var(--ink);overflow:auto}.inspect-matter.kind-about,.inspect-matter.kind-contact,.inspect-matter.kind-articles,.inspect-matter.kind-article{background:linear-gradient(180deg,#fbf3e2f2,#efe2c8ee)}.inspect-matter.kind-experience,.inspect-matter.kind-job,.inspect-matter.kind-projects,.inspect-matter.kind-project,.inspect-matter.kind-social{background:linear-gradient(180deg,#f7edd8f0,#e7d5b6ee)}.inspect-topline{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #b6a58c55;padding-bottom:12px;margin-bottom:20px}.modal-kicker,.eyebrow{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#8a735b;font-weight:700}.close-button{border:1px solid #c3b29a;background:#f5ead7;color:#4d3b2c;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;cursor:pointer;flex-shrink:0}.close-button:hover{background:#e4d0b3}.close-button:focus-visible,.content-row:focus-visible,.contact-option:focus-visible,.business-card:focus-visible,.page-controls button:focus-visible,.back-row:focus-visible,.primary-link:focus-visible{outline:2px solid #b58a5b;outline-offset:2px}.back-row{display:inline-flex;align-items:center;gap:6px;margin:0 0 14px;padding:4px 10px 4px 6px;border:1px solid transparent;border-radius:4px;background:none;font-family:Marck Script,cursive;font-size:16px;line-height:1.2;color:#8c7963;cursor:pointer;transition:color .2s,border-color .2s,transform .2s}.back-row:hover{color:#5c4327;border-color:#c7b69b;background:#f8efdfaa;transform:translate(-2px)}.inspect-matter h1{font-family:Cormorant Garamond,Marck Script,serif;font-weight:500;font-size:clamp(32px,4vw,46px);line-height:1.12;margin:10px 0 16px;color:#2c2118}.inspect-matter h3{font-size:14px;margin:-8px 0 14px;color:#715a45}.body-copy{font-size:15px;line-height:1.75;color:#5c4d3e;max-width:46ch}.strength-eyebrow{margin-top:26px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#8a735b;font-weight:700}.strength-list{margin-top:14px;display:flex;flex-direction:column;gap:16px}.strength-item{display:grid;gap:4px;padding:12px 14px;border:1px solid #cbb99e88;background:#f9f0e1aa;max-width:46ch}.strength-item strong{font-size:14px;color:#4d3b2c;letter-spacing:.01em}.strength-item span{font-size:13px;line-height:1.6;color:#665545}.paper-page{background:repeating-linear-gradient(to bottom,transparent 0,transparent 30px,#8b9bb522 31px);min-height:100%}.page-controls{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #b6a58c70;margin-top:28px;padding-top:16px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#8c7963}.page-controls div{display:flex;gap:8px}.page-controls button{width:34px;height:34px;display:grid;place-items:center;border:1px solid #c7b69b;border-radius:50%;background:#f8efdf;color:#433326;cursor:pointer}.page-controls button:disabled{opacity:.35;cursor:default}.contact-options,.item-list{display:flex;flex-direction:column;gap:8px;margin-top:20px}.contact-option,.content-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid #cbb99e;background:#f9f0e1cc;color:var(--ink);text-decoration:none;text-align:left;border-radius:4px;width:100%;font:inherit;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}.contact-option:hover,.content-row:hover{background:#fff8e9;border-color:#b58a5b;transform:translateY(-1px)}.contact-option>svg:last-child,.content-row>svg{margin-left:auto;flex-shrink:0;color:#997550}.option-icon,.item-emoji{width:36px;height:36px;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:#e8d7bd;color:#805b3a;font-size:18px}.contact-option span:nth-child(2),.contact-option span:first-child,.item-main{display:flex;flex-direction:column;gap:3px;min-width:0}.contact-option strong,.item-main strong{font-size:13px}.contact-option small,.item-main small{font-size:11px;line-height:1.5;color:#887662}.muted-option{opacity:.65;cursor:default}.comic-number{font-family:Marck Script,cursive;font-size:24px;color:#ba8150;width:36px;text-align:center;flex-shrink:0}.archived-row{opacity:.78}.detail-icon{font-size:40px;margin:8px 0 4px}.primary-link{display:inline-flex;align-items:center;gap:9px;margin-top:16px;padding:12px 16px;text-decoration:none;border:0;border-radius:4px;font-size:12px;cursor:pointer;font:inherit;color:#fff0dc;background:#38271d}.primary-link:hover{background:#62432c}.preview-note,.small-note{font-size:12px;color:#9a856c;line-height:1.6;margin-top:18px}.business-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.business-card{min-height:118px;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:14px;background:#fff9eb;border:1px solid #d6c4a7;box-shadow:2px 8px 16px #6d4b2526;transform:rotate(var(--card-tilt));transition:transform .2s,box-shadow .2s;cursor:pointer;color:#30251d;font:inherit}.business-card:hover{transform:translateY(-5px) rotate(0);box-shadow:0 12px 22px #6d4b2533;z-index:1}.card-index{font-size:9px;color:#b58a5c;letter-spacing:.12em}.business-card strong{font-family:Cormorant Garamond,serif;font-size:22px;font-weight:500}.business-card small{font-size:11px;color:#887662}.card-rule{height:1px;background:#d5c2a5;width:100%;margin-top:auto}.achievement-list{display:grid;gap:10px;margin-top:18px}.achievement-list div{display:flex;gap:10px;color:#bd8551;font-size:14px}.achievement-list span{color:#635345;font-size:13px;line-height:1.55}.inline-link{color:#997550;display:grid;place-items:center}.soon-label{font-size:10px;color:#9d8a72}@media(max-width:860px){.inspect-object{height:min(92vh,920px);display:flex;flex-direction:column}.inspect-photo{position:relative;height:34vh}.inspect-shade{display:none}.inspect-matter{position:relative;width:100%;flex:1;padding:16px 16px 28px}.business-cards{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.steam span{opacity:.32;transform:none}}
