:root{--paper:#101113;--ink:#f0eee8;--muted:#a1a1a5;--line:#303135;--lime:#c4b3ff;--dark:#151519}body{background:var(--paper)}header{border-color:#292a2d}.brand span,.period{color:#bfacf3}.hero-top{padding-top:35px}.hero-grid{grid-template-columns:1.12fr 1fr;gap:0}h1{font-size:clamp(48px,5vw,71px);letter-spacing:-3.5px;line-height:1.12}h1>span:not(.period){color:#8c8c94;font-size:.75em;letter-spacing:-2px}h1 em{font-style:normal;color:#cab9ff}i,.mini-dot{background:#bca5fc}.button{background:#d0bfff;color:#181220}.button:hover{background:#e4daff}.hero-copy{padding-right:25px}.hero-copy>p{max-width:385px}.hero-bottom strong{color:#dad8df}.hero-bottom span{color:#72677f}.craft-stage{height:520px;position:relative;perspective:1000px;isolation:isolate;overflow:hidden;border:1px solid #2d2d36;background:radial-gradient(ellipse at 70% 45%,#38304466,transparent 65%),#141518;border-radius:7px}.stage-grid{position:absolute;inset:0;background-image:linear-gradient(#b7a3d70a 1px,transparent 1px),linear-gradient(90deg,#b7a3d70a 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(transparent,#000,transparent)}.stage-halo{position:absolute;width:320px;height:320px;top:85px;right:-65px;border:1px solid #c8b2ff25;border-radius:50%;box-shadow:0 0 100px #a782e812,inset 0 0 70px #a782e80e}.stage-heading{position:absolute;top:23px;left:25px;font:8px monospace;letter-spacing:2px;color:#b7a4d0}.ink-lines{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#c4adff;stroke-width:1;opacity:.3}.ink-lines path{stroke-dasharray:900;stroke-dashoffset:0}.is-running .ink-lines path{animation:ink 7s ease both}.code-window{position:absolute;top:125px;left:22px;width:79%;background:#191a20ed;border:1px solid #65616f;border-radius:8px;box-shadow:0 25px 65px #0008;transform:rotateY(8deg) rotateZ(-5deg) translateX(-12px);transition:transform 1.2s,opacity 1.2s;opacity:.85}.editor-bar,.editor-footer{display:flex;justify-content:space-between;align-items:center;font:8px monospace;letter-spacing:.4px;padding:14px 15px;color:#a3a0af;border-bottom:1px solid #38353f}.editor-bar>span:first-child{color:#bf9ee8;letter-spacing:3px}.editor-footer{border:0;border-top:1px solid #38353f;font-size:7px}.editor-footer span:last-child{color:#c6b3ff}.code-body{display:flex;gap:13px;padding:22px 16px;height:235px}.line-numbers{color:#77717f;font:10px/21px monospace}.code-body pre{font:9px/21px monospace;color:#cab8ef;margin:0;white-space:pre-wrap;overflow:hidden}.caret{color:#d8c9ff}.crafted-phone{position:absolute;top:78px;right:27px;width:174px;height:315px;border:5px solid #49464e;border-radius:27px;background:#131319;overflow:hidden;box-shadow:8px 28px 45px #0009;transform:rotateY(-12deg) rotateZ(9deg) translateZ(40px);transition:transform 1.3s cubic-bezier(.2,.7,.2,1),opacity 1s;z-index:3}.crafted-phone img{width:100%;height:100%;object-fit:cover;opacity:1;transition:clip-path 1.3s,opacity .8s;clip-path:inset(0)}.wireframe{position:absolute;inset:20px 12px;display:grid;gap:10px;opacity:0;transition:opacity .6s}.wireframe b{height:55px;border:1px solid #b59ce6;border-radius:7px}.wireframe i{display:block;height:25px;width:auto;border:1px solid #806b9f;border-radius:4px;background:none;margin:0}.wireframe span{border:1px solid #77698e;border-radius:5px}.stage-note{position:absolute;bottom:80px;left:24px;font:10px monospace;color:#cdc2e2}.sequence-controls{position:absolute;bottom:23px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:8px;font:8px monospace;letter-spacing:1px;color:#aea3be}.sequence-controls button{border:0;background:transparent;color:#c5bbd5;font:8px monospace;padding:8px 4px}.sequence-controls button:hover{color:white}.sequence-track{position:absolute;bottom:0;height:2px;background:#292430;left:0;right:0}.sequence-track span{display:block;height:100%;width:100%;background:#c6aeff}.is-running .sequence-track span{animation:progress 8.5s linear both}.craft-stage[data-phase="write"] .code-window{transform:rotateY(-5deg) rotateZ(-2deg) translateX(16px);opacity:1}.craft-stage[data-phase="write"] .crafted-phone{transform:translate(105px,120px) rotateY(-30deg) rotateZ(15deg) scale(.65);opacity:0}.craft-stage[data-phase="assemble"] .crafted-phone{transform:translate(0,20px) rotateY(-18deg) rotateZ(4deg)}.craft-stage[data-phase="assemble"] .crafted-phone img,.craft-stage[data-phase="write"] .crafted-phone img{clip-path:inset(100% 0 0);opacity:0}.craft-stage[data-phase="assemble"] .wireframe{opacity:1}.is-running[data-phase="release"] .crafted-phone{animation:phone-settle 1.8s ease both}.is-running .caret{animation:caret .7s step-end infinite}.motion-paused *{animation-play-state:paused!important}.motion-paused .code-window,.motion-paused .crafted-phone,.motion-paused .crafted-phone img{transition:none}.drive .project-art{background:#252b2b}.property .project-art{background:#322b30}.oto .project-art{background:#362d24}.swish .project-art{background:#2c2b39}.art-label{color:#c8c2cc}.project-art{border:1px solid #ffffff08}.project-art>img{box-shadow:0 14px 35px #0007}.circle{border-color:#56515f}.circle:hover{color:#17121c}.app-grid>a{background:#202126}.app-grid>a:hover{background:#333039}.filters button.active{background:#c4b3ff;color:#17121c;border-color:#c4b3ff}.about-section{background:#18181d;border-top:1px solid #303038;border-bottom:1px solid #303038}.about-grid h2 span{color:#ada0c6}.about-grid p:not(.eyebrow){color:#a4a0ac}.about-grid p.about-intro{color:#e3dde9}.experience article{border-color:#343139}.experience span{color:#bca6d8}.experience small{color:#a39aaa}.services article>span,.services small{color:#b9a7d1}.contact{background:#c4b3ee;color:#1b1524}.contact-bottom{border-color:#9784b4}.contact-bottom button{border-color:#9784b4;color:#251c32}.contact i{background:#654b82}.contact-title{font-weight:500}.reveal-ready{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}.reveal-ready.in-view{opacity:1;transform:none}.project-art{transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .35s ease}.motion-paused .project-art{transform:none!important}.motion-paused .reveal-ready{opacity:1;transform:none}.skip{color:#18121f}@keyframes ink{from{stroke-dashoffset:900}to{stroke-dashoffset:0}}@keyframes progress{from{width:0}to{width:100%}}@keyframes caret{50%{opacity:0}}@keyframes phone-settle{0%{transform:translate(0,20px) rotateY(-18deg) rotateZ(4deg)}100%{transform:rotateY(-12deg) rotateZ(9deg) translateZ(40px)}}@media(max-width:1100px){h1{font-size:54px}.craft-stage{height:480px}.crafted-phone{right:18px;width:150px;height:273px;top:100px}.code-window{left:10px;width:90%}.code-body pre{font-size:8px}.sequence-controls{left:15px;right:12px;letter-spacing:0}}@media(max-width:760px){.hero-grid{grid-template-columns:1fr;gap:20px}h1{font-size:clamp(39px,10vw,66px);letter-spacing:-2px}h1>span:not(.period){font-size:.72em;letter-spacing:-1.5px}.hero-copy{padding-right:0}.craft-stage{height:435px}.crafted-phone{width:150px;height:270px;top:65px;right:25px}.code-window{top:108px;width:82%}.code-body{height:205px;padding:16px 10px;gap:8px}.code-body pre{font-size:7px;line-height:18px}.line-numbers{font-size:8px;line-height:18px}.editor-bar{font-size:7px;padding:12px}.stage-note{bottom:60px;font-size:9px}.stage-heading{font-size:7px}.hero-bottom{font-size:9px}.contact-title{font-size:40px}.hero-top{padding-top:25px}}@media(prefers-reduced-motion:reduce){.reveal-ready{opacity:1;transform:none}.project-art{transform:none!important}.caret{display:none}.ink-lines path{stroke-dashoffset:0}}
/* Keep the scene caption clear of the floating editor. */
.code-window{top:105px}.code-body{height:210px}.crafted-phone{right:42px}.stage-note{bottom:70px}
@media(max-width:760px){.code-window{top:97px}.code-body{height:192px}.crafted-phone{right:28px}.stage-note{bottom:57px}}
.is-running .sequence-track span{animation-duration:11s}.cv-details{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}.cv-details p{font-size:12px!important}.cv-details .text-link{margin-top:4px}

.more-apps{margin-top:65px}.more-apps .section-head{margin-bottom:24px}.more-apps .section-head h3{font-size:27px;font-weight:500;letter-spacing:-.8px;margin-bottom:0}.more-app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.more-app-grid article{padding:25px;border:1px solid var(--line);border-radius:5px;background:#19191e;display:flex;flex-direction:column;gap:18px}.more-app-grid .eyebrow{font-size:8px;color:#b2a4c5}.more-app-grid h3{font-size:21px;font-weight:500;margin:0}.store-links{display:flex;gap:22px;margin-top:auto}.store-links a{font-size:12px;color:#d3c0fa;padding:8px 0;border-bottom:1px solid #51475f}.store-links a:hover{color:white}@media(max-width:760px){.more-app-grid{grid-template-columns:1fr 1fr}.more-app-grid article{padding:19px}.more-app-grid h3{font-size:18px}.store-links{gap:15px}}@media(max-width:420px){.more-app-grid{grid-template-columns:1fr}}
.filters button{color:var(--ink)}.filters button.active{color:#17121c}
