@font-face{font-family:PanjiDisplay;src:url('assets/display.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
:root{--red:#ff0036;--ink:#050707;--paper:#f5f5ed;--cyan:#64f4f2;--display:PanjiDisplay,Impact,'Arial Narrow',sans-serif;--body:Arial,Helvetica,sans-serif;--page-pad:clamp(24px,4.7vw,82px);color-scheme:dark}
*{box-sizing:border-box}
html{min-width:320px;scroll-padding-top:24px}
body{margin:0;background:var(--ink);color:var(--paper);font:16px/1.5 var(--body);overflow-x:clip}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible{outline:3px solid var(--cyan);outline-offset:6px}
[hidden]{display:none!important}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip-path:inset(50%)!important;white-space:nowrap!important}
:focus:not(:focus-visible){outline:none}
h1,h2,h3,h4,p,figure{margin:0}
::selection{color:var(--ink);background:var(--cyan)}
button{border-radius:0}
.skip-link{position:fixed;z-index:100;top:-100px;left:16px;padding:12px 20px;background:var(--paper);color:var(--ink);font-weight:700}
.skip-link:focus{top:10px}
.masthead{min-height:82px;display:flex;align-items:center;justify-content:space-between;padding:14px var(--page-pad);position:relative;z-index:4;background:var(--ink);gap:20px}
.brand{display:flex;align-items:center;gap:13px}
.brand-mark{background:var(--paper);color:var(--ink);width:43px;height:43px;display:flex;align-items:center;justify-content:center;font:700 42px/.95 var(--display);transform:rotate(-8deg)}
.brand-mark span{color:var(--red)}
.brand-caption{font-size:12px;font-weight:800;line-height:1.5;letter-spacing:.06em}
.brand-caption>span{display:block;font-size:12px;font-weight:400;letter-spacing:.1em;color:#a1aaa8}
.external-link{display:flex;align-items:center;gap:13px;font-size:12px;font-weight:800;letter-spacing:.08em;min-height:44px}
.external-link span{font-size:25px;line-height:1;color:var(--red)}
.external-link:hover{color:var(--cyan)}
.screen{position:relative}
.render-filters{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
/* The game reference is a small pause menu on a dim scene. Keep the menu as the foreground. */
.home-screen{--pointer-x:0px;--pointer-y:0px;--pose-x:0px;--pose-turn:-3deg;--portrait-y:45px;min-height:690px;height:calc(100svh - 140px);isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 78% 22%,#233d3d 0,#0d2022 38%,#060b0e 76%)}
.home-screen::before{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:var(--paper);clip-path:polygon(0 0,7.7% 0,35.7% 100%,0 100%)}
.home-screen::after{content:'';position:absolute;inset:0;z-index:2;pointer-events:none;background:var(--ink);clip-path:polygon(0 0,7.5% 0,35.5% 100%,0 100%)}
.home-noise{position:absolute;inset:0;z-index:1;pointer-events:none;background-image:radial-gradient(#1b454b .9px,transparent 1px);background-size:5px 5px;opacity:.35}
.scene-geometry{position:absolute;inset:0;z-index:3;pointer-events:none}
.scene-star{position:absolute;animation:star-drift 11s ease-in-out infinite alternate;transform-origin:center}
.scene-star svg{width:100%;height:100%;display:block}
.star-one{width:clamp(245px,24vw,370px);left:-4%;top:29%;rotate:-19deg}
.star-two{width:clamp(125px,12vw,190px);left:14%;top:61%;rotate:13deg;animation-delay:-5s;animation-duration:14s}
.scene-stripes{position:absolute;inset:0;background:repeating-linear-gradient(128deg,transparent 0 12px,#48747844 12px 13px,transparent 13px 23px);clip-path:polygon(82% 0,92% 0,58% 100%,48% 100%);z-index:-1;opacity:.5}
.ghost-word{position:absolute;top:8%;right:2%;font:700 clamp(170px,24vw,410px)/.9 var(--display);letter-spacing:-.04em;color:transparent;-webkit-text-stroke:2px #4a77714d;transform:rotate(-12deg);z-index:0;user-select:none}
.home-content{position:relative;z-index:5;width:54%;padding:36px 0 115px var(--page-pad)}
.opening-note{display:flex;flex-wrap:wrap;gap:6px 15px;font-size:12px;font-weight:700;letter-spacing:.07em;margin-bottom:27px;color:#a2b3b0}
.opening-note span:first-child{background:var(--paper);color:var(--ink);padding:1px 6px;transform:rotate(-3deg)}
.home-title{font-family:var(--display);transform:rotate(-8deg);transform-origin:left center;line-height:1;margin:0 0 35px 10px}
.home-title>span{display:block;font:700 12px/1.5 var(--body);letter-spacing:.1em;margin:0 0 5px 4px}
.home-title strong{display:block;font-size:clamp(42px,4.4vw,67px);letter-spacing:-.04em;white-space:nowrap}
.cut-type>span,.menu-label>span{display:inline-block;transform:rotate(var(--glyph-angle,0deg)) translateY(var(--glyph-offset,0px));transform-origin:center;position:relative}
.cut-type>span:nth-child(3n+2),.menu-label>span:nth-child(3n+2){font-family:Georgia,'Times New Roman',serif;font-size:.78em;letter-spacing:-.07em}
.cut-type>span:nth-child(4n+1){background:var(--paper);color:var(--ink);padding:0 .02em;line-height:.9}
.main-menu{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-left:clamp(32px,5.8vw,98px);position:relative}
.menu-item{--angle:-12deg;position:relative;isolation:isolate;display:flex;align-items:center;padding:8px 21px 10px 14px;min-height:76px;max-width:100%;color:var(--paper);transform:rotate(var(--angle));transform-origin:30% 50%;transition:transform .2s cubic-bezier(.17,.88,.28,1.4),color .1s}
.menu-item::before{content:'';position:absolute;z-index:-1;inset:4px 1px;background:var(--ink);clip-path:polygon(0 7%,91% 0,100% 82%,4% 100%)}
.menu-item::after{content:'';position:absolute;z-index:-2;inset:-12px -26px;opacity:0;background:var(--paper);clip-path:polygon(0 70%,15% 30%,70% 0,86% 35%,100% 95%,36% 73%);pointer-events:none}
.menu-number{font:700 16px/1 var(--display);margin-right:12px;align-self:center;color:#cad0ce}
.menu-label{font:700 clamp(38px,4.2vw,66px)/1 var(--display);letter-spacing:-.035em;white-space:nowrap;display:inline-block;text-shadow:2px 2px 0 var(--ink),-1px -1px 0 var(--ink)}
.menu-label>span:nth-child(even){text-transform:lowercase}
.menu-arrow{font:700 31px/1 var(--body);margin-left:14px;opacity:0}
.menu-description{display:none}
.menu-about{--angle:-7deg;margin-left:21px}
.menu-contact{--angle:-2deg;margin-left:37px}
.menu-item.is-selected{color:var(--ink);transform:translateX(12px) rotate(calc(var(--angle) - 3deg)) scale(1.055)}
.menu-item.is-selected::before{inset:-5px -14px;background:var(--red);clip-path:polygon(0 44%,12% 21%,71% 0,82% 24%,99% 20%,91% 67%,100% 94%,28% 79%,3% 100%,7% 71%);animation:ribbon-settle .32s cubic-bezier(.12,.86,.22,1.1) both,ribbon-live 1.25s .32s ease-in-out infinite}
.menu-item.is-selected::after{animation:hover-shards 1.6s steps(1,end) infinite}
.menu-item.is-selected .menu-label{text-shadow:none}
.menu-item.is-selected .menu-label>span{animation:glyph-live 1.3s ease-in-out infinite}
.menu-item.is-selected .menu-label>span:nth-child(2n){animation-delay:-.45s;animation-direction:reverse}
.menu-item.is-selected .menu-label>span:nth-child(3n){animation-delay:-.8s}
.menu-item.is-selected .menu-number{color:var(--ink)}
.menu-item.is-selected .menu-arrow{opacity:1;animation:selection-arrow .95s ease-in-out infinite}
.menu-item:focus-visible{outline-color:var(--cyan)}
.selection-note{display:flex;gap:12px;align-items:center;max-width:365px;margin:39px 0 0 clamp(35px,8vw,125px);padding:10px 14px;background:var(--ink);transform:rotate(-3deg);border-left:3px solid var(--paper)}
.selection-index{font:700 42px/1 var(--display);color:var(--red)}
.home-intro{font-size:16px;font-weight:700;line-height:1.4}
.home-intro>span{font-size:12px;font-weight:400;display:inline-block;margin-top:3px;color:#b5c1be}
.hero-art{position:absolute;inset:-7% -2% -8% 39%;z-index:1;margin:0;pointer-events:none}
.portrait-frame{position:absolute;inset:0;transform:translate3d(calc(var(--pointer-x) + var(--pose-x)),calc(var(--pointer-y) + var(--portrait-y)),0) rotate(var(--pose-turn)) scale(1.12);transform-origin:50% 65%;transition:transform .55s cubic-bezier(.2,.85,.3,1.1);opacity:.52}
.portrait-frame img{display:block;width:100%;height:100%;object-fit:contain;object-position:50% 20%;filter:grayscale(1) contrast(1.15) brightness(.78) drop-shadow(-120px 0 0 #050707) drop-shadow(120px 0 0 #050707) drop-shadow(0 -10px 0 #050707) drop-shadow(0 12px 0 #050707);mask-image:linear-gradient(#000 0 60%,#0009 77%,transparent 98%)}
.home-screen[data-selection="about"]{--pose-x:-15px;--pose-turn:-5deg}
.home-screen[data-selection="contact"]{--pose-x:12px;--pose-turn:0deg}
.identity-card{position:absolute;bottom:16%;left:30%;right:5%;transform:rotate(-7deg);text-shadow:3px 4px 0 var(--ink)}
.identity-kicker{display:inline-block;background:var(--ink);font-size:12px;letter-spacing:.05em;font-weight:700;padding:4px 7px;margin-bottom:10px}
.identity-card strong{display:block;font:700 clamp(64px,7.8vw,121px)/.84 var(--display);letter-spacing:-.03em}
.identity-card strong>span{display:block;font-size:.57em;margin-left:9px;line-height:1.3;color:var(--paper)}
.identity-location{display:inline-block;font-size:12px;font-weight:800;margin-top:8px;background:var(--red);padding:3px 7px;color:var(--ink);text-shadow:none;transform:rotate(2deg)}
.identity-description{font-size:16px;line-height:1.6;margin:13px 0 0 10px;max-width:300px}
.art-marker{position:absolute;right:10%;top:17%;writing-mode:vertical-rl;color:#a8c0bc;font:700 12px/1 var(--body);letter-spacing:.12em;background:var(--ink);padding:12px 8px;transform:rotate(8deg)}
.work-teaser{position:absolute;z-index:6;bottom:22px;left:var(--page-pad);display:flex;align-items:center;gap:9px;font-size:12px;line-height:1.3;font-weight:800;letter-spacing:.06em}
.teaser-index{font:700 35px/1 var(--display);color:var(--red)}
.work-teaser>span:last-child{font-size:25px;margin-left:6px}
.footer{background:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:58px;padding:14px var(--page-pad);position:relative;z-index:5;font-size:12px;letter-spacing:.04em}
.footer-name{font-weight:700}
.footer-name b{color:var(--red);margin:0 8px}
.keyboard-hint{display:flex;align-items:center;gap:5px;font-size:12px}
kbd{font:700 13px/1 var(--body);border:1px solid #696969;min-width:21px;height:23px;display:inline-grid;place-content:center;margin-right:2px}
kbd:nth-of-type(3){margin-left:11px}
.footer-note{color:#a1aaa8;font-size:12px}
.chapter-nav{display:flex;align-items:center;justify-content:space-between;padding:0 var(--page-pad) 10px;gap:15px;border-bottom:1px solid #343c39;font:700 20px/1.2 var(--display);position:relative;z-index:5}
.chapter-nav>div{display:flex;gap:8px}
.chapter-nav a{padding:13px 17px;min-height:44px;display:inline-flex;align-items:center;gap:10px}
.chapter-nav a[aria-current="page"]{background:var(--red);color:var(--ink);transform:skew(-9deg) rotate(-2deg)}
.chapter-nav a:hover{color:var(--cyan)}
.chapter-nav a[aria-current="page"]:hover{color:var(--ink)}
.back-link{padding-left:0!important}
.content-screen{padding:38px var(--page-pad) 66px;min-height:calc(100svh - 201px)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:36px;position:relative;z-index:2}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;margin-bottom:11px}
.section-heading h2{font:700 clamp(49px,6.5vw,97px)/.95 var(--display);letter-spacing:-.03em;transform:rotate(-6deg);transform-origin:left center}
.section-heading h2>span:not([style]){color:var(--red)}
.section-heading>p{font-size:16px;line-height:1.6;margin-right:4%;color:#b7c0bc}
/* Expanding diagonal file strips, following the supplied SAVE-slot reference. */
.projects-screen{overflow:hidden;background:var(--ink);padding-top:45px;min-height:760px}
.projects-screen::before{content:'';position:absolute;width:400px;height:800px;top:80px;left:-220px;transform:rotate(-22deg);background:repeating-linear-gradient(0deg,transparent 0 31px,#33403c55 31px 44px);pointer-events:none}
.projects-screen .section-heading{margin-bottom:5px}
.projects-screen .section-heading h2{font-size:clamp(62px,8.5vw,128px);letter-spacing:-.07em}
.projects-screen .section-heading h2::after{content:'';position:absolute;inset:40% -8px -6px;background:var(--red);z-index:-1;transform:skew(-10deg)}
.project-workspace{position:relative;margin:95px 2.5% 105px 5%;transform:perspective(1400px) rotateY(12deg) rotateZ(-7deg);transform-origin:50% 0;max-width:1450px}
.project-list{display:flex;flex-direction:column;gap:9px}
.project-slot{position:relative;background:#9da8a3;color:var(--ink);margin-left:clamp(32px,7.5vw,120px);transform:skewX(12deg);transition:margin-left .36s cubic-bezier(.16,.85,.2,1),background .1s;isolation:isolate}
.project-slot::before{content:'';position:absolute;left:15px;top:9px;bottom:9px;width:12px;background:repeating-linear-gradient(0deg,var(--ink) 0 15px,transparent 15px 29px);z-index:1;pointer-events:none}
.project-slot.is-active{margin-left:0;background:var(--red);z-index:2}
.project-slot.is-active::after{content:'';position:absolute;z-index:-1;inset:0 -8px 0 0;border-right:4px solid var(--paper);pointer-events:none;animation:white-edge-glitch 1.6s steps(1,end) infinite}
.project-choice{width:100%;background:transparent;border:0;padding:17px 29px 18px 43px;display:flex;text-align:left;align-items:center;gap:20px;min-height:90px;transform:skewX(-12deg);position:relative}
.choice-number{font:700 38px/.9 var(--display);display:block;min-width:67px;align-self:center}
.choice-number small{display:block;font:700 14px/1 var(--display);margin-bottom:3px}
.choice-heading{display:block;min-width:0}
.choice-heading strong{display:block;font:700 clamp(30px,3.4vw,53px)/1 var(--display);letter-spacing:-.015em;transition:font-size .3s cubic-bezier(.16,.85,.2,1)}
.choice-heading>small{display:block;font-size:14px;margin-top:6px;line-height:1.3;font-weight:700}
.choice-status{font:700 12px/1.3 var(--body);margin-left:auto;white-space:nowrap}
.choice-arrow{font:700 35px/1 var(--body)}
.project-choice:is(:hover,:focus-visible) .choice-heading strong{text-shadow:2px 2px 0 var(--paper);animation:white-type-glitch 1.6s steps(1,end) infinite}
.project-slot.is-active .choice-heading strong{font-size:clamp(42px,5.1vw,81px);transform-origin:left center;animation:file-title 1.3s ease-in-out infinite,white-type-glitch 1.6s steps(1,end) infinite}
.project-slot.is-active .choice-number{font-size:54px}
.project-slot.is-active .choice-arrow{animation:selection-arrow .95s ease-in-out infinite}
.project-choice:focus-visible{outline-offset:3px;outline-color:var(--paper);z-index:3}
.slot-summary{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .36s cubic-bezier(.16,.85,.2,1),visibility .36s step-end}
.project-slot.is-active .slot-summary{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .36s cubic-bezier(.16,.85,.2,1),visibility 0s}
.slot-summary-inner{overflow:hidden;min-height:0}
.slot-body{display:grid;grid-template-columns:minmax(0,1fr) 190px;align-items:center;gap:32px;padding:0 44px 33px 135px;transform:skewX(-12deg)}
.slot-body .project-summary{font-size:16px;line-height:1.55;max-width:660px;font-weight:500}
.tech-tags{list-style:none;display:flex;flex-wrap:wrap;gap:7px;padding:0;margin:17px 0 0}
.tech-tags li{border:1px solid currentColor;padding:4px 8px;font-size:12px;font-weight:700}
.case-open{background:var(--paper);color:var(--ink);border:0;padding:17px 15px;min-height:65px;font:700 25px/1.05 var(--display);display:flex;align-items:center;gap:13px;text-align:left;transform:rotate(-3deg);box-shadow:5px 5px 0 var(--ink);transition:transform .15s}
.case-open>span{font:700 27px/1 var(--body)}
.case-open:is(:hover,:focus-visible){transform:translate(3px,-3px) rotate(1deg);background:var(--ink);color:var(--paper);box-shadow:5px 5px 0 var(--paper);animation:white-shadow-glitch 1.6s steps(1,end) infinite}
.case-open:focus-visible{outline-color:var(--paper);outline-offset:9px}
.file-counter{display:flex;align-items:center;gap:10px;margin:18px 0 0 11%;font-size:12px;letter-spacing:.09em;transform:skewX(12deg)}
.current-file{font:700 28px/1 var(--display);color:var(--red)}
.file-counter-rule{width:90px;height:3px;background:var(--paper);position:relative}
.file-counter-rule::before{content:'';position:absolute;width:30px;inset:0 auto 0 0;background:var(--red);transform:translateX(var(--file-progress,0px));transition:transform .24s}
.project-list-note{position:relative;font:700 16px/1.5 var(--body);margin:0 0 0 5%;color:#a9b4ae}
/* Native dialog keeps case reading, focus and Escape behavior together. */
.case-dialog{width:min(860px,calc(100% - 90px));max-height:min(86svh,960px);border:4px solid var(--paper);padding:0 27px 30px;background:#272d2b;color:var(--paper);transform:rotate(-2deg);box-shadow:12px 15px 0 #000b;overflow:auto;overscroll-behavior:contain}
.case-dialog::backdrop{background:#000c;backdrop-filter:blur(4px)}
body:has(.case-dialog[open]){overflow:hidden}
.dialog-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:12px 0;background:#272d2b;position:sticky;top:0;z-index:5;font-size:12px;font-weight:700;letter-spacing:.08em}
.dialog-number{color:#ff597a}
.dialog-close{display:flex;align-items:center;gap:14px;border:0;background:var(--paper);color:var(--ink);min-height:44px;padding:5px 13px;font:700 18px/1 var(--display)}
.dialog-close>span{font:400 29px/1 var(--body)}
.dialog-close:hover{background:var(--red);color:var(--paper)}
.project-poster{position:relative;isolation:isolate;overflow:hidden;background:var(--red);color:var(--paper);padding:22px 24px 25px;min-height:250px}
.project-poster::before{content:'';position:absolute;z-index:-1;inset:0;background:var(--ink);clip-path:polygon(79% 0,100% 0,100% 100%,64% 100%)}
.project-poster::after{content:'';position:absolute;z-index:-1;inset:0;opacity:.2;background-image:radial-gradient(var(--ink) 1px,transparent 1px);background-size:5px 5px}
.poster-meta{font-size:12px;font-weight:700;letter-spacing:.05em;background:var(--ink);padding:5px 8px;display:inline-block;max-width:92%}
.project-poster h3{font:700 clamp(54px,6vw,84px)/.87 var(--display);letter-spacing:-.02em;transform:rotate(-4deg);margin:24px 0}
.project-poster h3>span{display:block;color:var(--ink);-webkit-text-stroke:1px var(--paper)}
.system-flow{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:12px;font-weight:800;position:relative;z-index:1}
.system-flow>span{border:1px solid var(--paper);padding:6px;background:var(--ink)}
.system-flow b{font-size:20px}
.poster-side{position:absolute;right:14px;top:50%;writing-mode:vertical-rl;font-size:12px;letter-spacing:.09em;font-weight:700;transform:translateY(-50%)}
.project-copy{padding:24px 5px 0;transform:rotate(2deg)}
.project-copy .project-summary{font-size:16px;line-height:1.7;max-width:710px}
.project-copy .tech-tags{color:#c2cfca}
.case-notes{margin-top:25px;border-top:2px solid var(--paper);padding-top:24px}
.case-body{display:grid;gap:22px}
.case-body h4{font:700 21px/1.1 var(--display);background:var(--paper);color:var(--ink);display:inline-block;padding:3px 8px;transform:rotate(-2deg);margin-bottom:8px}
.case-body p{font-size:16px;line-height:1.7;max-width:710px}
.action-link{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;min-height:48px;padding:12px 0 5px;border-bottom:2px solid var(--paper);font:700 20px/1.2 var(--display);margin-top:20px}
.action-link>span{font-size:26px}
.action-link:hover{color:var(--cyan);border-color:var(--cyan)}
.about-screen{background:radial-gradient(ellipse at 0 100%,#142523,var(--ink) 65%)}
.about-layout{display:grid;grid-template-columns:31% minmax(0,1fr);gap:70px;align-items:start;margin-top:55px}
.about-profile{padding:25px;background:var(--red);color:var(--ink);transform:rotate(-5deg);box-shadow:9px 9px 0 var(--paper);position:relative;overflow:hidden}
.profile-label{font-size:12px;letter-spacing:.15em;border-bottom:2px solid var(--ink);display:block;padding-bottom:15px}
.profile-initials{font:700 clamp(85px,13vw,180px)/.86 var(--display);margin:30px 0 25px;letter-spacing:-.03em}
.profile-initials>span{display:block;color:var(--paper);margin-left:15%;text-shadow:5px 5px 0 var(--ink)}
.about-profile h3{font:700 clamp(25px,2.3vw,35px)/1.15 var(--display);margin-bottom:8px}
.about-profile p{font-size:16px;line-height:1.7}
.profile-bottom{font-size:12px;letter-spacing:.1em;display:block;border-top:2px solid var(--ink);margin-top:25px;padding-top:15px}
.about-copy{padding:28px 32px 30px;background:#252c29;position:relative;transform:rotate(-1deg)}
.about-copy::before{content:'';position:absolute;inset:-8px 55% auto -8px;height:12px;background:var(--paper);transform:rotate(-2deg)}
.about-copy>h3{font:700 clamp(32px,3.2vw,49px)/1.05 var(--display);margin:0 0 23px}
.about-copy>p{font-size:16px;line-height:1.75;max-width:690px;margin-bottom:17px}
.skill-groups{display:grid;grid-template-columns:1fr 1fr;gap:25px 24px;padding-top:22px;margin-top:22px;border-top:2px solid var(--paper)}
.skill-groups>div>span{font-size:12px;letter-spacing:.02em;color:#ff6485;font-weight:700}
.skill-groups h4{font:700 26px/1.15 var(--display);margin:8px 0}
.skill-groups p{font-size:16px;line-height:1.7;color:#c7d2cd}
.contact-screen{background:var(--red);color:var(--ink);padding-top:30px;overflow:hidden}
.calling-card{position:relative;display:grid;grid-template-columns:1.2fr 1fr;gap:24px;background:var(--ink);color:var(--paper);padding:52px 7% 60px;transform:rotate(-3deg);margin:32px 0 23px;box-shadow:10px 11px 0 var(--paper);border:2px solid var(--paper)}
.card-caption{position:absolute;top:19px;left:7%;font-size:12px;font-weight:700;letter-spacing:.14em}
.calling-card h2{font:700 clamp(65px,8.5vw,128px)/.93 var(--display);letter-spacing:-.015em;margin:20px 0 10px}
.calling-card h2>span{color:var(--red)}
.contact-copy{align-self:center;transform:rotate(3deg);padding-top:40px}
.contact-copy>p{font-size:clamp(17px,2vw,26px);line-height:1.65}
.contact-button{display:flex;align-items:center;justify-content:space-between;gap:15px;background:var(--paper);color:var(--ink);padding:17px 20px;margin-top:32px;font:700 clamp(20px,2vw,28px)/1.1 var(--display);transform:skew(-5deg)}
.contact-button:hover{background:var(--red);color:var(--paper)}
.contact-button span{font:700 29px/1 var(--body)}
.contact-handle{font-size:14px;display:block;margin-top:15px;color:#d4d4d4}
.calling-signature{position:absolute;right:6%;bottom:20px;font:700 17px/1 var(--display);letter-spacing:.1em}
.noscript-note{padding:24px;background:var(--paper);color:var(--ink)}
.scene-transition{position:fixed;inset:0;z-index:90;pointer-events:none;overflow:hidden;contain:strict}
.transition-blade{position:absolute;inset:-20% -40%;transform:translateX(-130%) skewX(-22deg);background:var(--ink);border-right:5px solid var(--paper)}
.transition-echo{background:var(--red);border:0}
@keyframes ribbon-settle{0%{transform:scaleX(.45) scaleY(.65) rotate(8deg)}55%{transform:scaleX(1.12) scaleY(.9) rotate(-3deg)}100%{transform:scale(1) rotate(0)}}
@keyframes ribbon-live{0%,100%{transform:scale(1) rotate(0);clip-path:polygon(0 44%,12% 21%,71% 0,82% 24%,99% 20%,91% 67%,100% 94%,28% 79%,3% 100%,7% 71%)}35%{transform:scale(1.035,.94) rotate(-1.5deg);clip-path:polygon(0 36%,14% 24%,75% 5%,84% 20%,97% 29%,94% 64%,100% 86%,25% 85%,0 96%,10% 67%)}70%{transform:scale(.99,1.045) rotate(1deg);clip-path:polygon(2% 48%,10% 16%,68% 0,80% 28%,100% 17%,89% 72%,97% 100%,31% 76%,5% 96%,6% 75%)}}
@keyframes glyph-live{0%,100%{transform:rotate(var(--glyph-angle)) translateY(var(--glyph-offset)) scale(1)}45%{transform:rotate(calc(var(--glyph-angle) + 3deg)) translateY(calc(var(--glyph-offset) - 2px)) scale(1.035)}75%{transform:rotate(calc(var(--glyph-angle) - 2deg)) translateY(calc(var(--glyph-offset) + 1px)) scale(.985)}}
@keyframes selection-arrow{0%,100%{transform:translate(0,0)}45%{transform:translate(4px,-3px) rotate(-5deg)}70%{transform:translate(1px,1px) rotate(2deg)}}
@keyframes file-title{0%,100%{transform:translate(0,0) rotate(0) scale(1)}40%{transform:translate(3px,-2px) rotate(-.6deg) scale(1.018)}75%{transform:translate(-1px,1px) rotate(.35deg) scale(.995)}}
/* White hover accents jump between slices; only the decorative layer is clipped. */
@keyframes hover-shards{0%,25%,76%,100%{opacity:.85;transform:translate(-5px,4px) skewX(-3deg);clip-path:polygon(0 70%,15% 30%,70% 0,86% 35%,100% 95%,36% 73%)}12%{opacity:1;transform:translate(10px,-5px) skewX(8deg);clip-path:inset(2% 0 76% 0)}18%{opacity:.18;transform:translate(-9px,3px);clip-path:inset(56% 0 15% 0)}60%{opacity:1;transform:translate(-12px,1px) skewX(-8deg);clip-path:inset(64% 0 5% 0)}68%{opacity:.25;transform:translate(7px,-6px);clip-path:inset(22% 0 48% 0)}}
@keyframes white-edge-glitch{0%,25%,76%,100%{opacity:1;transform:translateX(0);clip-path:inset(0)}12%{opacity:1;transform:translateX(7px);clip-path:inset(8% 0 65% 0)}18%{opacity:.2;transform:translateX(-3px);clip-path:inset(58% 0 8% 0)}60%{opacity:1;transform:translateX(5px);clip-path:inset(48% 0 12% 0)}68%{opacity:.35;transform:translateX(-2px);clip-path:inset(5% 0 72% 0)}}
@keyframes white-type-glitch{0%,25%,76%,100%{text-shadow:2px 2px 0 var(--paper)}12%{text-shadow:-5px 0 0 var(--paper),4px 2px 0 #f5f5ed80}18%{text-shadow:1px -2px 0 #f5f5ed50}60%{text-shadow:5px -1px 0 var(--paper),-3px 2px 0 #f5f5ed80}68%{text-shadow:-1px 1px 0 #f5f5ed50}}
@keyframes white-shadow-glitch{0%,25%,76%,100%{box-shadow:5px 5px 0 var(--paper)}12%{box-shadow:-6px 2px 0 var(--paper),7px -3px 0 #f5f5ed80}18%{box-shadow:2px -2px 0 #f5f5ed50}60%{box-shadow:8px 1px 0 var(--paper),-4px 5px 0 #f5f5ed80}68%{box-shadow:-2px 3px 0 #f5f5ed50}}
@keyframes star-drift{from{transform:translate(0,0) rotate(-2deg) scale(1)}to{transform:translate(5px,-9px) rotate(4deg) scale(1.04)}}
@media(min-width:1600px){.home-content{padding-top:65px}.home-title{margin-bottom:50px}.main-menu{gap:18px}.menu-item{min-height:92px}.selection-note{margin-top:55px}.project-workspace{margin-left:auto;margin-right:auto}}
@media(max-width:1100px){.home-screen{min-height:700px}.home-content{width:59%}.menu-label{font-size:clamp(36px,4.5vw,50px)}.main-menu{margin-left:38px}.menu-item{padding-left:8px;padding-right:13px;min-height:76px}.menu-number{margin-right:9px}.menu-arrow{font-size:25px;margin-left:9px}.selection-note{margin-left:52px}.hero-art{left:39%;right:-9%}.identity-card{left:23%;right:12%;bottom:17%}.identity-card strong{font-size:80px}.identity-kicker{max-width:220px}.identity-location{max-width:220px}.identity-description{font-size:16px}.star-one{width:280px;left:-70px}.star-two{left:16%;top:66%}.footer-note{display:none}.slot-body{grid-template-columns:minmax(0,1fr) 152px;gap:22px;padding-left:119px;padding-right:26px}.case-open{font-size:23px;padding:15px 12px}.choice-status{display:none}.choice-number{min-width:58px}.project-workspace{margin-bottom:95px;margin-top:80px}.about-layout{gap:40px}.about-copy{padding:24px}.skill-groups{grid-template-columns:1fr}.calling-card{padding-left:5%;padding-right:5%}}
@media(max-width:760px){:root{--page-pad:24px}.masthead{min-height:76px;padding-top:12px;padding-bottom:12px}.brand-mark{width:37px;height:37px;font-size:35px}.brand{gap:10px}.brand-caption>span{letter-spacing:.04em}.external-link{gap:7px}.home-screen{--portrait-y:0px;height:auto;min-height:1080px;display:flex;flex-direction:column}.home-screen::before{clip-path:polygon(0 0,5.5% 0,100% 66%,100% 67%,0 30%)}.home-screen::after{clip-path:polygon(0 0,5% 0,100% 66.5%,100% 100%,0 100%);background:linear-gradient(var(--ink) 0 51%,transparent 65%)}.home-content{width:100%;padding:27px var(--page-pad) 20px}.opening-note{gap:7px 14px;margin-bottom:28px}.home-title{margin-left:8px;margin-bottom:33px}.home-title strong{font-size:clamp(39px,8vw,57px)}.home-title>span{font-size:12px}.main-menu{margin-left:clamp(14px,6vw,46px);gap:13px;max-width:440px}.menu-item{min-height:76px;padding:7px 16px 10px 10px}.menu-label{font-size:clamp(38px,9vw,62px)}.menu-number{font-size:15px;margin-right:11px}.menu-about{margin-left:17px}.menu-contact{margin-left:27px}.menu-arrow{font-size:28px}.selection-note{margin:36px 13px 0 34px;max-width:335px}.star-one{width:260px;left:-78px;top:155px}.star-two{width:135px;left:16%;top:402px}.hero-art{position:relative;inset:auto;width:100%;height:495px;flex-shrink:0;margin-top:-30px;z-index:4}.portrait-frame{inset:-110px -70px -120px 10%;opacity:.55}.portrait-frame img{object-position:50% 17%;filter:grayscale(1) contrast(1.15) brightness(.78) drop-shadow(-84px 0 0 #050707) drop-shadow(84px 0 0 #050707) drop-shadow(0 -8px 0 #050707) drop-shadow(0 9px 0 #050707)}.identity-card{left:28%;right:6%;bottom:65px;z-index:2}.identity-card strong{font-size:clamp(78px,16vw,108px)}.identity-kicker{font-size:12px;max-width:250px}.identity-location{max-width:270px}.identity-description{margin-top:12px}.art-marker{top:7%;right:5%}.ghost-word{top:auto;bottom:17%;font-size:210px;right:-23px}.work-teaser{bottom:17px}.footer{min-height:58px;padding-top:18px;padding-bottom:18px;justify-content:center;text-align:center}.keyboard-hint{display:none}.chapter-nav{padding-bottom:10px;gap:2px;font-size:16px}.chapter-nav>div{gap:0}.chapter-nav a{padding:10px 11px}.content-screen{padding-top:30px;min-height:calc(100svh - 198px)}.section-heading{display:block;margin-bottom:29px}.section-heading h2{font-size:clamp(42px,9.5vw,68px)}.section-heading>p{margin-top:22px;font-size:16px}.eyebrow{font-size:12px}.projects-screen{min-height:820px;padding-bottom:45px}.projects-screen .section-heading h2{font-size:clamp(56px,12.5vw,92px)}.projects-screen .section-heading>p{margin-left:6px}.project-workspace{margin:60px 0 75px 1%;transform:rotate(-4deg)}.project-list{gap:10px}.project-slot{margin-left:17px;transform:skewX(5deg)}.project-slot::before{left:8px;width:7px;background:repeating-linear-gradient(0deg,var(--ink) 0 12px,transparent 12px 23px)}.project-slot.is-active::after{right:-4px;border-right-width:2px}.project-choice{padding:17px 14px 18px 25px;gap:13px;min-height:94px;transform:skewX(-5deg)}.choice-number{font-size:28px;min-width:40px}.choice-number small{font-size:12px}.choice-heading strong{font-size:clamp(24px,5.9vw,40px)}.project-slot.is-active .choice-heading strong{font-size:clamp(30px,7.7vw,53px)}.project-slot.is-active .choice-number{font-size:38px}.choice-heading>small{font-size:12px;margin-top:5px;max-width:215px}.choice-arrow{font-size:24px;margin-left:auto}.slot-body{grid-template-columns:1fr;padding:0 22px 28px 32px;gap:21px;transform:skewX(-5deg)}.slot-body .project-summary{font-size:16px;line-height:1.6}.slot-body .tech-tags{margin-top:15px}.case-open{justify-self:start;max-width:230px;min-height:58px;font-size:24px}.file-counter{margin-left:24px;font-size:12px;gap:8px}.file-counter-rule{width:55px}.file-counter-rule::before{width:18px;transform:translateX(calc(var(--file-progress,0px) * .6))}.project-list-note{font-size:16px;margin-left:3px}.case-dialog{width:calc(100% - 24px);max-height:90svh;transform:none;padding:0 16px 24px;border-width:3px;box-shadow:6px 6px 0 #000a}.dialog-toolbar{font-size:12px;gap:10px}.dialog-close{font-size:16px;gap:9px;padding-left:10px;padding-right:10px}.project-poster{padding:18px 16px 22px;min-height:240px}.poster-meta{font-size:12px;letter-spacing:0;padding:5px 6px;max-width:94%}.project-poster h3{font-size:clamp(49px,12vw,80px);margin-top:24px}.poster-side{right:6px;font-size:12px}.system-flow{gap:4px;font-size:12px;max-width:95%}.system-flow>span{padding:5px}.system-flow b{font-size:16px}.project-copy{transform:none;padding:23px 0 0}.case-body{gap:22px}.about-layout{display:flex;flex-direction:column;gap:42px;margin-top:39px}.about-profile{width:100%;max-width:440px;transform:rotate(-2deg);padding:22px 25px;display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.profile-label{grid-column:1/-1}.profile-initials{grid-row:2/5;margin:25px 0 5px;font-size:100px}.about-profile h3{align-self:end;padding-top:25px;font-size:27px}.about-profile p{font-size:16px}.profile-bottom{grid-column:1/-1;margin-top:23px}.about-copy{padding:25px 22px;transform:none}.about-copy>h3{font-size:38px}.skill-groups{gap:24px}.skill-groups h4{font-size:25px}.calling-card{display:block;padding:49px 26px 60px;margin-top:25px;box-shadow:7px 8px 0 var(--paper);transform:rotate(-2deg)}.calling-card h2{font-size:clamp(66px,17vw,104px)}.card-caption{left:26px;font-size:12px}.contact-copy{padding-top:15px;transform:rotate(2deg)}.contact-copy>p{font-size:17px}.contact-button{font-size:24px;margin-top:24px;padding:16px}.contact-handle{font-size:14px}.calling-signature{font-size:12px;right:26px}.desktop-break{display:none}}
@media(max-width:380px){:root{--page-pad:18px}.brand-caption{font-size:12px;letter-spacing:0}.brand-caption>span{display:none}.masthead{gap:12px}.home-title strong{font-size:39px}.main-menu{margin-left:12px}.menu-label{font-size:36px}.menu-number{margin-right:8px}.menu-item{padding-right:10px}.menu-arrow{font-size:24px;margin-left:8px}.menu-item.is-selected{transform:translateX(8px) rotate(calc(var(--angle) - 3deg)) scale(1.03)}.selection-note{margin-left:22px;margin-right:5px;padding:9px 11px;gap:9px}.home-intro{font-size:16px}.identity-card{left:20%;right:7%;bottom:65px}.identity-card strong{font-size:76px}.identity-description{font-size:16px}.chapter-nav{font-size:14px}.chapter-nav a{padding-left:8px;padding-right:8px}.choice-arrow{display:none}.project-choice{gap:10px}.choice-number{min-width:33px}.project-slot.is-active .choice-number{font-size:33px}.slot-body{padding-left:27px;padding-right:18px}.tech-tags{gap:6px}.tech-tags li{padding:4px 6px}.file-counter-rule{display:none}.profile-initials{font-size:86px}.about-profile{padding-left:19px;padding-right:19px}.about-copy{padding-left:20px;padding-right:20px}.calling-card{padding-left:22px;padding-right:22px}.contact-button{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.portrait-frame{transform:translateY(var(--portrait-y)) rotate(-3deg)}.scene-transition{display:none!important}}
