@charset "UTF-8";
:root{--cyan:#0bd8eb;--ink:#08151b;--cream:#f2eedc;--display:Impact,'Arial Narrow','Franklin Gothic Medium',sans-serif;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--cyan)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer;border-radius:0}a{color:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #f84b44;outline-offset:4px}h1,h2,h3,p{margin-top:0}h2{font-family:var(--display);font-weight:900}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;top:-100px;left:20px;z-index:200;background:var(--cream);padding:14px}.skip-link:focus{top:15px}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.23em;line-height:1.6}.scene{position:fixed;inset:0;width:100%;height:100svh;overflow:hidden;padding:85px 4vw 90px}.scene[hidden]{display:none!important}.scene-scroll{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}.scene-nav{position:fixed;left:4%;right:4%;top:24px;z-index:20;display:flex;align-items:center;gap:40px;font-size:11px;font-weight:900;letter-spacing:.08em}.scene-nav a{text-decoration:none}.brand{background:var(--ink);color:var(--cream);padding:8px 10px;transform:rotate(-3deg)}.scene-nav nav{display:flex;gap:25px}.scene-nav nav a{padding:6px 0;text-transform:uppercase;border-bottom:2px solid transparent}.scene-nav nav a[aria-current]{border-color:currentColor}.classic-link{margin-left:auto}body[data-scene=home] .scene-nav nav{visibility:hidden}body[data-scene=home] .scene-nav{color:white}.collage{font-family:var(--display);font-weight:900;letter-spacing:-.035em;line-height:.94}.collage>span,.menu-item>span>span{display:inline-block;transform:rotate(var(--r));position:relative}.collage .cut,.menu-item .cut{background:var(--ink);color:white;padding:0 .035em;margin:0 .015em}.collage>span:nth-child(3n),.menu-item>span>span:nth-child(3n){font-size:.9em}.collage>span:nth-child(5n),.menu-item>span>span:nth-child(5n){top:.035em;font-size:1.07em}.scene-heading h2,.skills h2,.contact h2{font-size:clamp(60px,6.9vw,108px);margin:10px 0 15px}.scene-heading>p:last-child{font-size:12px}
/* Water home; same illustrated person, blink, tie, and calm idle movement. */
.home{background:linear-gradient(180deg,#16e8ef 0%,#10b9ed 28%,#0874e5 53%,#083fcf 77%,#1228bb 100%);color:white}.water{position:absolute;inset:-12% -5% auto;height:37%;opacity:.6;background:repeating-radial-gradient(ellipse at 50% -45%,transparent 0 18px,#acffff90 20px 23px,transparent 26px 48px);transform:perspective(350px) rotateX(52deg) scale(1.5);filter:blur(2px)}.home:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(112deg,#96ffff22,transparent 35% 58%,#9dffff11 59%,transparent 72%)}.home-copy{position:relative;z-index:4;top:1vh;width:36%;max-width:530px}.home h1{font-size:clamp(50px,5.5vw,87px);margin:17px 0 22px}.bio{background:var(--ink);color:var(--cream);padding:13px 17px;line-height:1.55;font-size:12px;display:table;transform:rotate(-2deg);box-shadow:5px 5px 0 #00d5f1;margin-bottom:22px}.menu{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.menu-item{font-family:var(--display);font-weight:900;font-size:clamp(32px,4.1vw,63px);text-decoration:none;line-height:1.04;padding:3px 20px 6px 10px;position:relative;transform:rotate(-3deg);white-space:nowrap}.menu-item:nth-child(2){transform:rotate(1deg);margin-left:15px}.menu-item:nth-child(3){transform:rotate(-5deg);margin-left:7px}.menu-item:nth-child(4){transform:rotate(-1deg);margin-left:17px}.menu-item small{font:900 9px Arial;position:absolute;left:-13px;top:35%;opacity:.6}.menu-item.is-selected{background:var(--ink);color:white}.menu-item.is-selected:after{content:'';position:absolute;right:-16px;top:36%;border-top:9px solid transparent;border-bottom:9px solid transparent;border-right:13px solid white}.selection-description{font-size:10px;letter-spacing:.07em;margin:20px 0 0 5px}.portrait-wrap{position:absolute;left:39%;top:-20%;width:68%;height:133%;z-index:2;transform:rotate(180deg);pointer-events:none;animation:portrait-drift 11s ease-in-out infinite}.portrait{width:100%;height:100%;object-fit:contain;overflow:visible}.portrait-source{display:none}.tie-sway{transform-origin:0 0;animation:tie-sway 7s ease-in-out infinite}.blink-layer{opacity:0;animation:blink 7.2s linear infinite}.watermark{position:absolute;right:3%;bottom:10%;font:900 12vw/.8 var(--display);opacity:.1;transform:rotate(-8deg);z-index:1}.bubbles{position:absolute;inset:0;pointer-events:none}.bubbles i{position:absolute;bottom:-30px;left:15%;border:1px solid #b4ffff88;border-radius:50%;width:9px;height:9px;animation:bubble 19s linear infinite}.bubbles i:nth-child(2n){width:17px;height:17px;animation-duration:25s;animation-delay:-7s;left:68%}.bubbles i:nth-child(3n){left:35%;animation-delay:-13s}.bubbles i:nth-child(4n){left:84%;animation-delay:-19s}.bubbles i:nth-child(5n){left:23%;animation-delay:-4s}
/* All twelve genuine projects retain their descriptions and attribution. */
.projects{background:repeating-linear-gradient(125deg,transparent 0 28px,#05345966 29px 30px,transparent 31px 58px),var(--cyan)}.projects .scene-heading{position:relative;z-index:1}.projects-scroll{position:relative;width:79%;height:calc(100% - 158px);padding:8px 18px 22px 2px;z-index:2}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px 19px}.project-item{padding:19px 17px 15px;background:var(--cream);box-shadow:6px 7px 0 var(--ink);border:2px solid var(--ink);position:relative;min-width:0;animation:card-enter .6s both;animation-delay:calc(var(--order,0)*75ms)}.project-item.featured{background:var(--ink);color:var(--cream);box-shadow:6px 7px 0 #007a98}.category{display:table;background:var(--ink);color:var(--cyan);font-size:8px;font-weight:900;letter-spacing:.1em;line-height:1.4;padding:4px 6px;margin:-26px 0 18px -9px;border:1px solid var(--cyan)}.project-title{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.project-title>b,.project-title a{font-family:var(--display);font-size:26px;font-weight:900;text-decoration:none;line-height:1.05}.project-status{font-size:9px;font-weight:bold;text-transform:uppercase;line-height:1.45}.project-item p{font-size:11px;line-height:1.55;margin-bottom:10px}.featured .project-status{color:var(--cyan)}.project-links{font-size:10px}.project-cta{display:table;background:var(--cyan);color:var(--ink);font-size:9px;font-weight:900;text-decoration:none;padding:8px 10px;margin-top:15px;border:1px solid var(--ink)}.archive-link{display:inline-block;background:var(--ink);color:var(--cream);font-size:11px;padding:12px;margin-top:27px}.project-ghost{position:absolute;right:-1vw;top:26%;font:900 9.5vw/.83 var(--display);writing-mode:vertical-rl;color:#063657;opacity:.35;transform:rotate(-5deg)}
/* Categorical stripes express groups, never invented proficiency scores. */
.skills{background:radial-gradient(var(--ink) .9px,transparent 1.2px) 0 0/4px 4px,var(--cyan)}.skills:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#00e0ed 0%,#00e0eda6 37%,transparent 80%);pointer-events:none}.outline-word{position:absolute;top:22%;left:3%;font:900 19vw var(--display);color:transparent;-webkit-text-stroke:2px var(--ink);transform:rotate(-9deg);white-space:nowrap;opacity:.7}.skills-portrait{position:absolute;height:130%;width:69%;object-fit:contain;right:-10%;top:-15%;filter:contrast(1.15);mix-blend-mode:multiply}.skills-content{position:relative;z-index:3;width:47%;height:100%;padding-right:25px}.skill-band{margin:25px 0;background:var(--cyan);padding-bottom:1px}.skill-band h3{font:900 25px var(--display);color:var(--cream);background:var(--ink);padding:7px 12px;transform:skew(-6deg);margin-bottom:10px}.skill-band p{font-size:12px;line-height:1.6;font-weight:bold;margin-bottom:4px}.skill-stripe{margin:12px 0 0;height:12px;background:repeating-linear-gradient(130deg,var(--ink) 0 3px,transparent 3px 7px);animation:stripe-reveal .85s ease both}.skill-band:nth-of-type(2) .skill-stripe{animation-delay:100ms}.skill-band:nth-of-type(3) .skill-stripe{animation-delay:200ms}.coursework{background:var(--cream);border:2px solid var(--ink);padding:15px;font-size:12px;line-height:1.55;margin-top:27px}.coursework summary{font-weight:900;cursor:pointer}.coursework h2{font-size:30px;margin-top:20px}.coursework h3{font:900 23px var(--display)}.profile-tags{display:flex;flex-wrap:wrap;gap:8px}.profile-tags span{background:var(--ink);color:var(--cream);padding:5px 8px;font-size:10px}.coursework li{margin:8px 0}
/* The paper scrolls independently of its fixed grayscale background. */
.about{background:#202a2e}.about-background{position:absolute;width:73%;height:132%;top:-9%;left:-9%;object-fit:contain;filter:grayscale(1) contrast(1.7);opacity:.65;mix-blend-mode:luminosity}.about-label{position:absolute;left:5%;bottom:14%;font:900 7vw/.9 var(--display);color:var(--cream);transform:rotate(-5deg);text-shadow:5px 5px var(--ink)}body[data-scene=about] .scene-nav{color:var(--cream)}.dossier{position:absolute;right:4%;top:88px;bottom:89px;width:43%;background:var(--cream);padding:27px 29px 35px;box-shadow:-10px 12px 0 #0ddbea;border:2px solid var(--ink);transform:rotate(1deg)}.dossier>.eyebrow{font-size:8px}.dossier h2{font:900 38px var(--display);border-top:9px solid var(--cyan);padding-top:12px;margin-bottom:20px}.dossier h2 span{display:block;font:900 9px Arial;letter-spacing:.15em;margin-top:5px}.instant-photo{width:44%;float:right;transform:rotate(7deg);margin:5px 0 25px 25px;background:#fff;padding:8px 8px 12px;box-shadow:2px 4px 5px #0004;position:relative}.instant-photo:before{content:'';position:absolute;left:24%;top:-13px;width:54%;height:25px;background:#00d9eac9;transform:rotate(-8deg);z-index:1}.instant-photo img{display:block;width:100%;aspect-ratio:1/1.14;object-fit:cover;background:#0aa8c6}.instant-photo figcaption{font-size:6px;font-weight:900;padding-top:8px}.dossier-body h2{clear:both;font:900 25px var(--display);background:var(--ink);color:var(--cream);padding:7px 10px;border:0;margin:25px 0 13px;display:table}.dossier-body h3{font:900 23px/1.1 var(--display)}.dossier-body p,.dossier-body li{font-size:12px;line-height:1.65}.dossier-body .project-item{background:none;box-shadow:none;border:0;border-bottom:1px solid #08151b66;padding:5px 0 15px;margin:0 0 16px;animation:none}.dossier-body .project-title b{font-size:21px}.achievement{margin:12px 0;border-left:5px solid var(--cyan);padding-left:10px}.achievement strong{font:900 24px var(--display);display:block}.achievement span{font-size:11px;line-height:1.5;display:block}.dossier-note{clear:both;font-size:9px;border-top:2px solid var(--ink);padding-top:15px}.panel{border-bottom:1px solid #777;margin-bottom:15px}
/* Original geometric train car, with replaceable illustrated character. */
.contact{background:#0074d4}.train-art{position:absolute;inset:0 0 0 -2%;background:linear-gradient(0deg,#004c99 0 28%,#0870c4 28% 83%,#073768 83%);transform:skewY(-4deg);transform-origin:left center}.train-sign{position:absolute;left:11%;top:14%;width:28%;padding:9px;background:#062955;border:5px solid #068ccc;color:#31efff;font-size:10px;letter-spacing:.16em;text-align:center}.train-sign b{display:block;margin-top:5px;font:900 21px var(--display)}.train-windows{position:absolute;top:29%;left:3%;right:3%;height:26%;display:flex;gap:5%}.train-windows i{width:28%;border:13px solid #063b75;background:linear-gradient(140deg,#001b42 0 40%,#0876b6 40% 44%,#034878 44% 70%,#00a6cf 70% 73%,#042f65 73%);box-shadow:0 0 0 3px #00ace5}.train-doors{position:absolute;left:38%;top:22%;width:23%;height:63%;border:12px solid #0b3b6b;display:flex;gap:3px;background:#031b45}.train-doors span{width:50%;background:linear-gradient(#136ba9 0 12%,#032750 12% 58%,#0c669f 58%);border:3px solid #0482b8}.train-handles{position:absolute;left:7%;top:20%;font-size:51px;letter-spacing:7vw;color:#03c8ee}.train-seat{position:absolute;left:0;top:57%;width:38%;height:24%;background:repeating-linear-gradient(90deg,#00337b 0 14%,#086fc1 14% 15%);border:12px solid #022f71;border-top:15px solid #17ace0;transform:skewY(5deg)}.train-floor{position:absolute;bottom:0;left:0;right:0;height:20%;background:repeating-linear-gradient(110deg,transparent 0 90px,#00a5c944 92px 95px),linear-gradient(#033063,#004477)}.contact-character{position:absolute;left:0;bottom:-15%;width:47%;height:102%;object-fit:contain;filter:brightness(.7) saturate(1.5);mix-blend-mode:screen;opacity:.9}.contact-content{position:absolute;left:63%;right:4%;top:90px;bottom:88px;padding:0 10px 20px 3px}.contact .eyebrow{color:white}.contact h2{font-size:5.3vw;color:var(--cream);margin:7px 0 20px}.contact-intro{background:var(--cream);font:900 24px/1.13 var(--display);padding:17px 19px;margin-bottom:14px;transform:rotate(-2deg);box-shadow:5px 5px var(--ink)}.contact-intro small{display:block;font:11px/1.5 Arial;margin-top:10px}.social-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:21px 0 15px}.social-tabs a{font-size:9px;font-weight:900;color:var(--cream);background:var(--ink);padding:10px;text-decoration:none;transform:rotate(-2deg)}#contact-form{background:var(--cream);padding:16px 19px;border:2px solid var(--ink);box-shadow:6px 6px var(--ink)}.form-note{font-size:8px;letter-spacing:.08em;font-weight:900}label{display:block;font-size:10px;font-weight:bold;margin-top:10px}input,textarea{display:block;width:100%;border:1px solid var(--ink);background:#fffdf3;color:var(--ink);padding:8px;margin-top:5px;border-radius:0;font-size:13px}textarea{resize:vertical;min-height:70px;max-height:200px}#contact-form button{margin-top:12px;background:var(--cyan);border:2px solid var(--ink);padding:10px 14px;font-size:10px;font-weight:900}#compose-status{font-size:9px;line-height:1.5;margin:10px 0 0}.direct-email{display:block;color:var(--cream);font-size:10px;overflow-wrap:anywhere;margin-top:19px}
/* Persistent keyboard hints and vinyl, shared audio engine unchanged. */
.hud{position:fixed;bottom:0;left:0;right:0;height:72px;z-index:21;display:flex;align-items:center;padding:12px 4%;gap:28px;pointer-events:none;color:var(--cream);background:linear-gradient(transparent,#001627bb)}.hud>*{pointer-events:auto}.commands{display:flex;align-items:center;gap:17px;font-size:8px;font-weight:900;letter-spacing:.08em}.commands span{white-space:nowrap}.commands button{background:none;color:inherit;border:0;font-size:8px;font-weight:900;padding:8px 0}kbd{font-family:Arial;font-size:9px;background:var(--cream);color:var(--ink);padding:3px 5px;margin-right:4px}.preferences{display:flex;gap:15px;align-items:center;font-size:8px;font-weight:900}.preferences button{font-size:8px;font-weight:900;border:1px solid #f2eedc66;color:inherit;background:var(--ink);padding:8px}.preferences a{text-decoration:none}.vinyl-player{margin-left:auto;display:flex;align-items:center;gap:12px}.vinyl-control{position:relative;background:transparent;border:0;padding:0;width:51px;height:51px;color:var(--cream)}.vinyl-disc{display:flex;align-items:center;justify-content:center;border:2px solid #030b19;border-radius:50%;width:100%;height:100%;background:repeating-radial-gradient(circle,#15191f 0 2px,#303337 3px,#080c12 4px);box-shadow:1px 2px 0 #00ddeb;animation:vinyl-spin 8s linear infinite;animation-play-state:paused}.is-playing .vinyl-disc{animation-play-state:running}.vinyl-label{background:var(--cyan);color:var(--ink);font-size:4px;font-weight:900;border-radius:50%;height:20px;width:20px;padding-top:3px;text-align:center}.record-action{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#001322d9;border-radius:50%;opacity:0;font-size:13px}.record-action small{font-size:7px}.vinyl-control:hover .record-action,.vinyl-control:focus-visible .record-action{opacity:1}.music-toggle{background:var(--ink);color:var(--cream);border:1px solid #f2eedc99;padding:8px 10px;font-size:8px;font-weight:900;min-height:32px}.music-toggle[aria-pressed=true]{color:var(--cyan)}.scene-wipe{position:fixed;inset:0;z-index:100;pointer-events:none;display:none;overflow:hidden}.scene-wipe i{position:absolute;inset:0;background:var(--cream);transform:translateX(-130%) skewX(-16deg);animation:wipe .73s cubic-bezier(.65,0,.25,1) both}.scene-wipe i:nth-child(2){background:#090f17;animation-delay:40ms}.scene-wipe i:nth-child(3){background:#baf6ec;animation-delay:80ms}.scene-wipe i:nth-child(4){background:var(--cyan);animation-delay:120ms}.is-transitioning .scene-wipe{display:block}.noscript{position:fixed;z-index:200;top:0;left:0;right:0;padding:20px;background:var(--cream)}
@keyframes wipe{0%{transform:translateX(-130%) skewX(-16deg)}45%,55%{transform:translateX(0) skewX(-16deg)}100%{transform:translateX(130%) skewX(-16deg)}}@keyframes card-enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes stripe-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes portrait-drift{0%,100%{transform:rotate(180deg) translateY(0)}50%{transform:rotate(181deg) translateY(8px)}}@keyframes tie-sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(3deg)}}@keyframes blink{0%,44%,47%,100%{opacity:0}45%,46%{opacity:1}}@keyframes bubble{to{transform:translate(30px,-110vh)}}@keyframes vinyl-spin{to{transform:rotate(360deg)}}
@media(max-width:1050px){.scene-nav{gap:22px}.scene-nav nav{gap:18px}.home-copy{width:42%}.home h1{font-size:6vw}.home .eyebrow{font-size:8px}.portrait-wrap{left:34%;width:78%}.projects-scroll{width:88%}.project-ghost{opacity:.2}.project-item{padding:17px 13px}.project-title a{font-size:23px}.dossier{width:49%}.skills-content{width:53%}.skills-portrait{right:-18%;width:78%}.contact-content{left:56%}.contact h2{font-size:6vw}.preferences{gap:10px}.hud{gap:18px}}
@media(max-width:700px){.scene{padding:82px 6% 93px}.scene-nav{left:6%;right:6%;top:18px;gap:12px;flex-wrap:wrap;font-size:8px}.scene-nav .brand{font-size:8px}.scene-nav nav{gap:12px;order:3;width:100%}.classic-link{font-size:8px}.home-copy{width:65%;top:6vh}.home h1{font-size:10vw;margin:14px 0 20px}.home .eyebrow{font-size:7px;max-width:90%}.bio{font-size:10px;padding:10px 12px;max-width:93%;margin-bottom:26px}.menu{gap:12px}.menu-item{font-size:9.5vw;padding-right:14px}.menu-item:nth-child(2),.menu-item:nth-child(4){margin-left:7px}.menu-item small{font-size:7px}.selection-description{font-size:8px;max-width:80%;margin-top:23px}.portrait-wrap{left:40%;width:105%;height:112%;top:-18%;opacity:.95}.home:before{content:'';position:absolute;inset:0;z-index:3;background:linear-gradient(90deg,#043dd43d 0 45%,transparent 75%);pointer-events:none}.watermark{font-size:22vw;bottom:17%;right:-2%}.scene-heading h2,.skills h2{font-size:13vw;margin:12px 0}.scene-heading>p:last-child{font-size:10px;line-height:1.5;max-width:90%}.scene-heading>.eyebrow{font-size:8px;margin-top:11px}.projects-scroll{height:calc(100% - 142px);width:100%;padding:8px 10px 20px 0}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 14px}.project-item{padding:16px 11px 13px;box-shadow:4px 5px var(--ink)}.category{font-size:6px;padding:3px;max-width:calc(100% + 12px);margin-top:-23px;margin-left:-4px}.project-title a{font-size:22px;overflow-wrap:anywhere}.project-status{font-size:8px}.project-item p{font-size:10px}.project-cta{font-size:7px;padding:7px}.project-ghost{display:none}.skills-content{width:84%;height:100%;padding:9px 14px 25px 0}.skills-portrait{width:120%;height:95%;top:4%;right:-55%;opacity:.55}.skills:after{background:linear-gradient(90deg,#00e0edf2,#00e0e988 70%,transparent)}.outline-word{font-size:30vw;top:28%;left:0}.skill-band{margin:22px 0}.skill-band h3{font-size:22px;padding:7px 10px}.skill-band p{font-size:11px}.dossier{right:6%;left:6%;width:auto;top:99px;bottom:101px;padding:22px;transform:rotate(.5deg);box-shadow:-6px 7px var(--cyan)}.about-background{width:140%;height:120%;left:-50%;opacity:.4}.about-label{display:none}.dossier h2{font-size:34px}.dossier-body h2{font-size:25px}.dossier-body p{font-size:12px}.instant-photo{width:42%;margin-left:15px}.contact-content{left:8%;right:7%;top:103px;bottom:100px;padding:0 8px 20px 0}.contact h2{font-size:13vw}.contact-content>.eyebrow{font-size:8px}.contact-intro{font-size:23px;max-width:95%}.contact-intro small{font-size:10px}.train-art{opacity:.7}.contact-character{width:95%;left:-35%;opacity:.45}.social-tabs{gap:7px}.social-tabs a{font-size:8px}#contact-form{padding:16px}.hud{height:82px;padding:9px 6%;gap:7px;align-items:flex-end}.commands{gap:9px;position:absolute;bottom:45px;left:6%;font-size:6px}.commands button{font-size:6px;padding:0}kbd{font-size:7px;padding:2px 3px;margin-right:2px}.preferences{font-size:7px;gap:10px;padding-bottom:3px}.preferences button{font-size:6px;padding:7px}.preferences a{text-decoration:none}.vinyl-player{gap:8px;align-self:center}.vinyl-control{width:43px;height:43px}.music-toggle{font-size:7px;padding:7px;min-height:30px}.record-action{opacity:1;background:#001322aa}.record-action b{font-size:10px}.record-action small{font-size:6px}}
@media(max-height:650px) and (min-width:701px){.scene{padding-top:71px;padding-bottom:74px}.home-copy{top:-1vh}.home h1{font-size:5vw;margin:8px 0 14px}.bio{font-size:10px;margin-bottom:12px}.home .eyebrow{margin-bottom:5px}.menu-item{font-size:4vw}.menu{gap:2px}.selection-description{margin-top:12px}.scene-heading h2,.skills h2{font-size:65px;margin:6px 0 10px}.projects-scroll{height:calc(100% - 130px)}.contact-content{top:72px;bottom:80px}.dossier{top:72px;bottom:80px}.skill-band{margin:17px 0}.skill-band h3{font-size:21px}.skill-band p{font-size:11px}.hud{height:65px}}
@media(max-width:370px){.commands{gap:6px}.preferences a{display:none}.menu{gap:10px}.bio{font-size:9px}.project-grid{grid-template-columns:1fr}.home-copy{top:3vh}.contact-content{left:6%;right:5%}}
.scene-nav>.classic-link{background:var(--ink);color:var(--cream);padding:8px 10px}.dossier-body>h2:first-child{clear:none}body[data-scene=contact] .scene-nav{color:var(--cream)}.dossier-nav{clear:both;display:flex;gap:12px;flex-wrap:wrap;margin:15px 0 24px;font-size:8px;font-weight:900}.dossier-nav a{background:var(--ink);color:var(--cream);padding:8px;text-decoration:none}.dossier-body h2{scroll-margin-top:15px}.course-link{display:table;font-size:10px;font-weight:bold;background:var(--ink);color:var(--cream);padding:9px 12px;margin-top:20px;text-decoration:none}
/* Latest photo-grounded art, materialized with intact Library metadata. */
.revised-portrait{left:44%;top:-26%;width:61%;height:132%;transform:none;animation:revised-drift 12s ease-in-out infinite}.revised-home-art{object-fit:contain;mix-blend-mode:screen}.skills-portrait{height:119%;width:71%;right:-12%;top:-6%;mix-blend-mode:normal}.about-background{width:100%;height:100%;top:0;left:0;object-fit:cover;filter:none;opacity:1;mix-blend-mode:normal}.about-label{display:none}.dossier{width:40%}.photo-crop{aspect-ratio:1/1.14;overflow:hidden;background:#d4d2c6}.instant-photo .photo-crop img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;transform:scale(1.7);transform-origin:55% 28%}.train-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:100% 50%}.contact:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 50%,#001d4288 78%,#001d4266);pointer-events:none}.contact-content{z-index:2}.contact .scene-nav{color:var(--cream)}.project-item{padding:16px 17px 15px;align-self:start}.project-grid{align-items:start;gap:28px 19px}.project-title{margin-bottom:9px}.project-title a{font-size:24px}.project-item p[data-excerpt]{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;min-height:34px}.project-description{font-size:9px;line-height:1.5;margin:10px 0}.project-description summary{cursor:pointer;font-size:8px;font-weight:bold;letter-spacing:.05em}.project-description[open]{border-top:1px solid currentColor;padding-top:8px}.project-description[open] summary{margin-bottom:10px}.project-cta{margin-top:8px}.skill-band h3{background:var(--cream);color:var(--ink);box-shadow:4px 4px var(--ink);display:table;padding:7px 13px}.skill-band{background:#0bd8ebce}.skills-content{width:46%}.skill-stripe{height:15px;background:repeating-linear-gradient(130deg,#f2eedc 0 5px,#08151b 5px 7px);box-shadow:4px 4px var(--ink)}
@keyframes revised-drift{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(8px) rotate(0)}}
@media(max-width:1050px) and (min-width:701px){.revised-portrait{left:39%;width:70%}.dossier{width:47%}.skills-content{width:51%}.skills-portrait{width:80%;right:-18%}}
@media(max-width:700px){.revised-portrait{left:12%;width:95%;height:103%;top:-14%;transform:none}.home h1{text-shadow:2px 2px 0 #0733a6}.home .eyebrow{text-shadow:1px 1px 0 #0733a6}.skills-portrait{right:-51%;width:130%;height:105%;top:0;opacity:.65}.skills-content{width:85%}.dossier{width:auto}.train-background{object-position:44% 50%;opacity:.7}.contact:after{background:#00306b55}.project-item{padding:15px 11px 13px}.project-title a{font-size:22px}.project-item p[data-excerpt]{min-height:45px;-webkit-line-clamp:3;font-size:10px}.project-description summary{font-size:7px}.photo-crop{aspect-ratio:1/1.14}}
@media(prefers-reduced-motion:reduce){.revised-portrait{transform:none}}.reduce-motion .revised-portrait{transform:none}
@media(pointer:coarse){.music-toggle,.preferences button,.preferences a{min-height:44px;display:inline-flex;align-items:center}.scene-nav nav a{min-height:32px;display:inline-flex;align-items:center}.social-tabs a{min-height:40px;display:inline-flex;align-items:center}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.scene-wipe{display:none!important}.blink-layer{opacity:0!important}.portrait-wrap{transform:rotate(180deg)}.portrait-wrap.revised-portrait{transform:none!important}}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduce-motion .scene-wipe{display:none!important}.reduce-motion .blink-layer{opacity:0!important}.reduce-motion .portrait-wrap{transform:rotate(180deg)}.reduce-motion .portrait-wrap.revised-portrait{transform:none!important}
/* Approved upright Home pose: translate gently, keep the body upright. */
.portrait-wrap.revised-portrait{left:40%;top:-2%;width:65%;height:120%;transform:none;animation:home-gentle-float 10s ease-in-out infinite}.instant-photo .photo-crop img{transform-origin:50% 48%}
@keyframes home-gentle-float{0%,100%{transform:translate(0,0)}50%{transform:translate(-1px,-7px)}}
.home-blink{opacity:0;animation:home-natural-blink 6.8s linear infinite}
@keyframes home-natural-blink{0%,45.8%,48.2%,100%{opacity:0}46.5%,47.5%{opacity:1}}
@media(max-width:1050px) and (min-width:701px){.portrait-wrap.revised-portrait{left:35%;width:76%}}
@media(max-width:700px){.portrait-wrap.revised-portrait{left:12%;top:8%;width:95%;height:89%}.home:before{background:linear-gradient(90deg,#0344b6e6 0%,#0344b6b8 46%,#0344b622 68%,transparent 82%)}.home .menu-item{text-shadow:2px 2px 0 #0733a6}}
