:root{color-scheme:dark;--ink: #0b1020;--ink-soft: #121a30;--paper: #f4f7fc;--paper-soft: #e8eef8;--sky: #121a2f;--blue: #3aa0ff;--blue-dark: #1a6fc4;--cyan: #22d3ee;--cyan-dark: #0e7490;--purple: #6b5cff;--purple-soft: #8b7cff;--yellow: #ffc14d;--green: #2ee6a6;--green-dark: #0f9f6e;--white: #ffffff;--muted: #5b6478;--shadow: rgba(11, 16, 32, .4);--header-height: 74px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--page-gutter: clamp(14px, 3vw, 54px);--touch-zone: max(44px, 2.75rem);--dialog-radius: 0;font-family:Courier New,Nimbus Mono PS,monospace;font-synthesis:none}*{box-sizing:border-box}html,body{width:100%;max-width:100%;min-width:320px;min-height:100%;margin:0;overflow:hidden;overflow-x:clip;background:var(--ink)}body{color:var(--ink);text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%}button,a{font:inherit}button{color:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:4px solid var(--yellow);outline-offset:3px}.skip-link{position:fixed;z-index:1000;top:10px;left:10px;padding:10px 14px;transform:translateY(-160%);border:3px solid var(--ink);background:var(--yellow);color:var(--ink);cursor:pointer;font-weight:900}.skip-link:focus{transform:translateY(0)}.app-shell{min-height:100dvh;min-height:100svh;padding-top:var(--safe-top)}.topbar{position:relative;z-index:50;display:grid;height:var(--header-height);grid-template-columns:minmax(140px,1fr) auto minmax(140px,1fr);align-items:center;gap:clamp(12px,2vw,28px);padding-left:max(var(--page-gutter),var(--safe-left));padding-right:max(var(--page-gutter),var(--safe-right));border-bottom:4px solid #000;background:linear-gradient(180deg,rgba(58,160,255,.1),transparent 55%),linear-gradient(90deg,#0f1628,#121a2f 48%,#101828);box-shadow:0 4px #00000073,inset 0 -2px #22d3ee59,inset 0 1px #ffffff0f}.topbar:before{position:absolute;inset:0;pointer-events:none;opacity:.12;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.35) 3px);content:""}.brand{position:relative;z-index:1;display:inline-flex;width:max-content;align-items:center;gap:10px;color:var(--white);text-decoration:none}.brand-mark{display:grid;width:42px;height:42px;place-items:center;border:3px solid #000;background:var(--cyan);box-shadow:4px 4px #000;color:var(--ink);font-size:24px;font-weight:900;line-height:1;image-rendering:pixelated}.brand strong,.brand small{display:block;line-height:1}.brand strong{color:var(--white);font-size:15px;font-weight:900;letter-spacing:.12em;text-shadow:2px 2px 0 #000}.brand small{margin-top:5px;color:var(--blue);font-size:9px;font-weight:900;letter-spacing:.22em;text-shadow:1px 1px 0 #000}.portfolio-nav{position:relative;z-index:1;display:flex;align-items:center;gap:clamp(6px,1.2vw,12px)}.portfolio-nav button{position:relative;min-height:36px;padding:8px 12px;border:3px solid #000;background:#1c233c;box-shadow:3px 3px #000;color:#e8e4ff;cursor:pointer;font-size:10px;font-weight:900;letter-spacing:.1em;transition:transform .1s steps(2,end),box-shadow .1s steps(2,end),background .1s steps(2,end),color .1s steps(2,end)}.portfolio-nav button:hover,.portfolio-nav button:focus-visible{transform:translate(1px,1px);background:#2a3358;box-shadow:2px 2px #000;color:var(--white)}.portfolio-nav button:active{transform:translate(3px,3px);box-shadow:0 0 #000}.portfolio-nav button:after{display:none}.portfolio-nav .nav-cta{padding:8px 14px;border:3px solid #000;background:var(--yellow);box-shadow:3px 3px #000;color:var(--ink)}.portfolio-nav .nav-cta:hover,.portfolio-nav .nav-cta:focus-visible{background:#ffd27a;color:var(--ink)}.portfolio-nav .nav-cta:after{display:none}.availability{position:relative;z-index:1;display:flex;justify-self:end;align-items:center;gap:8px;padding:7px 10px;border:3px solid #000;background:#141a30;box-shadow:3px 3px #000;color:#b8c4d8;font-size:9px;font-weight:900;letter-spacing:.14em}.mobile-menu{position:relative;z-index:1;display:none;min-height:40px;min-width:40px;padding:8px 11px;border:3px solid #000;background:var(--yellow);box-shadow:3px 3px #000;color:var(--ink);cursor:pointer;font-size:10px;font-weight:900;letter-spacing:.08em}.mobile-menu:hover,.mobile-menu:focus-visible{transform:translate(1px,1px);box-shadow:2px 2px #000}.mobile-menu:active{transform:translate(3px,3px);box-shadow:0 0 #000}.availability span{width:9px;height:9px;border:2px solid #000;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px #2ee6a638;animation:status-pulse 1.8s steps(2,end) infinite}.availability strong{color:var(--green);font-weight:900}.game-shell{position:relative;height:calc(100vh - var(--header-height) - var(--safe-top));height:calc(100svh - var(--header-height) - var(--safe-top));height:calc(100dvh - var(--header-height) - var(--safe-top));min-height:0;overflow:hidden;isolation:isolate;background:var(--sky)}#game-canvas{display:block;width:100%;height:100%;cursor:crosshair;image-rendering:pixelated;touch-action:none}.scanlines{position:absolute;z-index:4;inset:0;pointer-events:none;opacity:.08;background:repeating-linear-gradient(to bottom,transparent 0,transparent 3px,rgba(11,16,32,.45) 4px);mix-blend-mode:soft-light}.start-screen{position:absolute;z-index:30;inset:0;display:grid;place-items:center;padding:clamp(12px,2.5vh,28px) clamp(12px,3vw,32px);text-align:center;transition:opacity .28s ease,visibility .28s ease}.start-veil{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 72% 58% at 50% 46%,#0a0e1e33,#080a18c7 58%,#050710eb),linear-gradient(180deg,#080c1c59,#080c1cb8)}.start-stage{position:relative;z-index:2;display:flex;width:min(920px,100%);flex-direction:column;align-items:center;gap:14px}.start-board-wrap{position:relative;width:min(100%,860px,calc(min(62vh,520px)*1.475));aspect-ratio:590 / 400;overflow:visible}.start-board{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 0 rgba(5,8,18,.55));image-rendering:pixelated;pointer-events:none;-webkit-user-select:none;user-select:none}.start-content{position:absolute;z-index:4;inset:10% 14% 34%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;min-height:0}.start-decoration{position:absolute;z-index:5;object-fit:contain;filter:drop-shadow(6px 8px 0 rgba(5,8,18,.45));image-rendering:pixelated;pointer-events:none;-webkit-user-select:none;user-select:none}.start-decoration--block{top:-2%;left:-1%;width:clamp(78px,11vw,128px);transform:rotate(-8deg);animation:asset-float 2.3s steps(5,end) infinite}.start-decoration--hero{top:-6%;right:0;width:clamp(88px,12vw,148px);animation:asset-float 2.6s steps(5,end) infinite reverse}.start-screen.is-hidden{visibility:hidden;opacity:0;pointer-events:none}.start-kicker{display:flex;align-items:center;gap:10px;margin:0;color:#c8c2e8;font-size:clamp(8px,1.1vw,10px);font-weight:900;letter-spacing:.22em}.start-kicker span{width:26px;height:3px;background:var(--cyan)}.eyebrow{margin:8px 0 4px;color:#7ec8ff;font-size:clamp(9px,1.15vw,11px);font-weight:900;letter-spacing:.26em}.start-screen h1{margin:0;color:#fff;font-family:Impact,Haettenschweiler,Arial Black,sans-serif;font-size:clamp(40px,6.2vw,72px);font-weight:900;letter-spacing:-.03em;line-height:.86;text-shadow:4px 4px 0 #000000}.start-screen h1 em{color:var(--cyan);font-style:normal;-webkit-text-stroke:2px var(--ink);text-shadow:4px 4px 0 #000000}.start-copy{max-width:min(420px,92%);margin:10px auto 12px;color:#d4cee8;font-family:Arial,Helvetica,sans-serif;font-size:clamp(12px,1.35vw,14px);line-height:1.45}.pixel-button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;gap:10px;padding:10px 28px;border:4px solid var(--ink);cursor:pointer;font-size:13px;font-weight:900;letter-spacing:.08em}.pixel-button--primary{background:var(--yellow);box-shadow:5px 5px 0 var(--ink)}.pixel-button--primary:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--ink)}.pixel-button--primary:active{transform:translate(5px,5px);box-shadow:0 0 0 var(--ink)}.start-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px;margin-top:12px;color:#d4cee8;font-size:9px;font-weight:900;letter-spacing:.08em}.start-controls span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:2px solid rgba(238,243,255,.14);background:#0b10206b}kbd{display:inline-grid;min-width:22px;height:22px;place-items:center;border:2px solid var(--ink);background:#fff;box-shadow:2px 2px 0 var(--ink);color:var(--ink);font:inherit}.skip-game{position:relative;z-index:3;margin:0;padding:6px 2px;border:0;border-bottom:2px solid currentColor;background:transparent;color:#b8c4d8;cursor:pointer;font-size:10px;font-weight:900}.hud{position:absolute;z-index:8;top:20px;left:clamp(16px,2.8vw,46px);display:flex;align-items:flex-start;gap:clamp(18px,3vw,50px);color:#fff;filter:drop-shadow(3px 3px 0 var(--ink));pointer-events:none}.hud-block small,.hud-block strong{display:block}.hud-block small{margin-bottom:3px;color:var(--yellow);font-size:8px;font-weight:900;letter-spacing:.15em}.hud-block strong{font-size:clamp(12px,1.5vw,16px);letter-spacing:.08em}.hud-hearts{width:72px;max-height:30px;margin-top:3px;object-fit:contain;image-rendering:pixelated}.game-hint{position:absolute;z-index:10;bottom:105px;left:50%;display:flex;align-items:center;gap:9px;padding:8px 14px 8px 8px;transform:translate(-50%,14px);border:3px solid var(--ink);background:var(--paper);box-shadow:4px 4px 0 var(--ink);font-size:10px;font-weight:900;letter-spacing:.1em;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .15s ease}.game-hint.is-visible{opacity:1;transform:translate(-50%)}.game-hint-key{display:grid;width:27px;height:27px;place-items:center;background:var(--cyan);color:var(--ink)}.world-progress{position:absolute;z-index:8;right:clamp(85px,8vw,136px);bottom:28px;left:clamp(85px,8vw,136px);height:7px;border:2px solid var(--ink);background:#ffffff70;pointer-events:none}#world-progress-fill{width:0;height:100%;background:var(--yellow)}#world-progress-player{position:absolute;top:50%;left:0;width:28px;height:28px;transform:translate(-50%,-50%);object-fit:contain;image-rendering:pixelated;filter:drop-shadow(2px 2px 0 var(--ink));pointer-events:none}.game-actions{position:absolute;z-index:12;right:24px;bottom:19px;display:flex;gap:10px}.game-actions button{display:grid;width:40px;height:40px;place-items:center;border:3px solid var(--ink);background:var(--paper);box-shadow:3px 3px 0 var(--ink);cursor:pointer;font-size:18px;font-weight:900}.game-actions button[aria-pressed=false] span{opacity:.34}.touch-controls{position:absolute;z-index:15;right:16px;bottom:58px;left:16px;display:none;align-items:flex-end;justify-content:space-between;pointer-events:none}.touch-dpad{position:relative;width:130px;height:130px}.touch-dpad img,.touch-jump img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;pointer-events:none}.touch-dpad button{position:absolute;top:34%;width:38%;height:34%;border:0;background:transparent;pointer-events:auto;touch-action:none}.touch-dpad button[data-control=left]{left:0}.touch-dpad button[data-control=right]{right:0}.touch-jump{position:relative;width:96px;height:96px;padding:0;border:0;background:transparent;pointer-events:auto;touch-action:none}.touch-jump span{position:absolute;right:0;bottom:-5px;left:0;color:#fff;font-size:9px;font-weight:900;letter-spacing:.12em;text-shadow:2px 2px 0 var(--ink)}.toast{position:absolute;z-index:16;top:92px;left:50%;max-width:min(88vw,440px);padding:10px 14px;transform:translate(-50%,-12px);border:3px solid var(--ink);background:var(--yellow);box-shadow:4px 4px 0 var(--ink);font-size:10px;font-weight:900;line-height:1.4;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease}.toast.is-visible{opacity:1;transform:translate(-50%)}.content-dialog{width:min(900px,calc(100vw - 28px - var(--safe-left) - var(--safe-right)));max-width:calc(100vw - 28px - var(--safe-left) - var(--safe-right));max-height:min(800px,calc(100dvh - 28px - var(--safe-top) - var(--safe-bottom)));margin:auto;padding:0;overflow:visible;border:0;background:transparent;color:var(--ink)}.content-dialog::backdrop{background:radial-gradient(ellipse at 50% 30%,rgba(34,211,238,.08),transparent 55%),#080c18d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.content-dialog[open]{animation:dialog-in .22s steps(4,end)}.dialog-frame{position:relative;display:flex;max-height:min(800px,calc(100dvh - 28px - var(--safe-top) - var(--safe-bottom)));flex-direction:column;overflow:hidden;border:4px solid var(--ink);background:var(--paper);box-shadow:0 0 0 1px #22d3ee40,10px 12px #0006}.dialog-frame:before{position:absolute;z-index:3;top:0;right:0;left:0;height:3px;background:linear-gradient(90deg,var(--cyan),var(--blue),var(--purple));content:""}.dialog-frame:after{display:none}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:3px solid var(--ink);background:linear-gradient(180deg,rgba(34,211,238,.08),transparent 70%),linear-gradient(90deg,#0f1628,#121a30 55%,#101828);color:#fff}.dialog-heading{display:flex;min-width:0;align-items:center;gap:14px}.dialog-asset{width:64px;height:64px;flex:0 0 auto;object-fit:contain;filter:drop-shadow(3px 4px 0 rgba(0,0,0,.35));image-rendering:pixelated}.dialog-frame[data-panel=about] .dialog-header{background:linear-gradient(180deg,rgba(46,230,166,.1),transparent 70%),linear-gradient(90deg,#0f1a22,#12302a)}.dialog-frame[data-panel=skills] .dialog-header{background:linear-gradient(180deg,rgba(58,160,255,.12),transparent 70%),linear-gradient(90deg,#0f1628,#0a3a5c)}.dialog-frame[data-panel=projects] .dialog-header{background:linear-gradient(180deg,rgba(34,211,238,.12),transparent 70%),linear-gradient(90deg,#0f1628,#0b4a5c)}.dialog-frame[data-panel=experience] .dialog-header{background:linear-gradient(180deg,rgba(107,92,255,.14),transparent 70%),linear-gradient(90deg,#12162e,#2a2060)}.dialog-frame[data-panel=contact] .dialog-header{background:linear-gradient(180deg,rgba(46,230,166,.12),transparent 70%),linear-gradient(90deg,#0f1a22,#0a3d38)}.dialog-header span{display:block;margin-bottom:4px;color:var(--cyan);font-size:9px;font-weight:900;letter-spacing:.18em}.dialog-header h2{margin:0;font-family:Impact,Haettenschweiler,Arial Black,sans-serif;font-size:clamp(22px,4vw,36px);letter-spacing:.03em;line-height:1}.dialog-close{display:grid;width:40px;height:40px;flex:0 0 auto;place-items:center;border:3px solid var(--ink);background:var(--cyan);box-shadow:3px 3px #000;color:var(--ink);cursor:pointer;font-family:Arial,sans-serif;font-size:26px;font-weight:900;line-height:1;transition:transform .12s ease,box-shadow .12s ease}.dialog-close:hover{transform:translate(1px,1px);box-shadow:2px 2px #000}.dialog-content{overflow-x:hidden;overflow-y:auto;padding:clamp(20px,3.5vw,36px);background:linear-gradient(180deg,#f8fafc 0%,var(--paper) 100%);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-color:var(--cyan) var(--paper-soft);scrollbar-width:thin}.dialog-content::-webkit-scrollbar{width:8px}.dialog-content::-webkit-scrollbar-track{background:var(--paper-soft)}.dialog-content::-webkit-scrollbar-thumb{border:2px solid var(--paper-soft);background:var(--cyan-dark)}.dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 18px;border-top:3px solid var(--ink);background:linear-gradient(180deg,#e8eef8,#dde6f4)}.dialog-footer>span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.1em}.dialog-footer button{display:inline-flex;min-height:38px;align-items:center;gap:6px;padding:8px 14px;border:3px solid var(--ink);background:var(--yellow);box-shadow:3px 3px 0 var(--ink);cursor:pointer;font-size:10px;font-weight:900;letter-spacing:.08em;transition:transform .12s ease,box-shadow .12s ease}.dialog-footer button:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink)}.panel-grid{display:grid;grid-template-columns:.85fr 1.25fr;gap:clamp(28px,6vw,70px)}.avatar-card{position:relative;display:grid;min-height:280px;place-items:center;border:4px solid var(--ink);overflow:hidden;background:radial-gradient(circle at 70% 20%,var(--yellow) 0 8px,transparent 9px),linear-gradient(145deg,#1b2744,#3aa0ff 55%,#2ee6a6);box-shadow:8px 8px 0 var(--ink)}.avatar-card:before{display:none}.avatar-card .panel-feature-asset{width:min(72%,230px);max-height:230px;object-fit:contain;filter:drop-shadow(8px 10px 0 rgba(23,21,45,.3));image-rendering:pixelated}.avatar-card .avatar-label{position:absolute;right:10px;bottom:10px;left:10px;padding:8px 10px;border:3px solid var(--ink);background:var(--paper);font-size:10px;font-weight:900;text-align:center}.panel-copy .panel-kicker,.contact-panel .panel-kicker{margin:0 0 8px;color:var(--cyan-dark);font-size:10px;font-weight:900;letter-spacing:.16em}.panel-asset-banner{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:18px;min-height:120px;margin-bottom:22px;padding:10px 20px 10px 12px;border:3px solid var(--ink);overflow:hidden;background:linear-gradient(110deg,#0f1628,#0b3d5c 55%,#0a4a4a);box-shadow:5px 5px 0 var(--ink);color:#fff}.panel-asset-banner[data-color=purple]{background:linear-gradient(110deg,#12162e,#2a2060 60%,#3a2a80)}.panel-asset-banner[data-color=cyan],.panel-asset-banner[data-color=green]{background:linear-gradient(110deg,#0f1a22,#0a4a48 55%,#0f6b5c)}.panel-asset-banner img{width:100px;height:100px;object-fit:contain;filter:drop-shadow(5px 6px 0 rgba(0,0,0,.3));image-rendering:pixelated}.panel-asset-banner small,.panel-asset-banner strong{display:block}.panel-asset-banner small{margin-bottom:6px;color:var(--cyan);font-size:9px;font-weight:900;letter-spacing:.16em}.panel-asset-banner strong{font-family:Impact,Haettenschweiler,Arial Black,sans-serif;font-size:clamp(20px,3.2vw,32px);letter-spacing:.025em;line-height:1}.contact-asset{width:min(180px,50vw);max-height:150px;margin:0 auto 12px;object-fit:contain;filter:drop-shadow(5px 6px 0 rgba(23,21,45,.2));image-rendering:pixelated}.panel-copy h3,.contact-panel h3{margin:0 0 20px;font-family:Impact,Haettenschweiler,Arial Black,sans-serif;font-size:clamp(32px,5vw,58px);letter-spacing:.01em;line-height:.95;overflow-wrap:anywhere}.panel-copy p,.contact-panel p,.project-card p,.timeline-item p{color:#514a6e;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.65}.focus-list,.stack-list,.social-list{display:flex;flex-wrap:wrap;gap:8px;padding:0;list-style:none}.focus-list li,.stack-list li{padding:7px 9px;border:2px solid var(--ink);background:#fff;box-shadow:2px 2px 0 var(--ink);font-size:9px;font-weight:900}.panel-meta{margin-top:16px;color:#6b6490;font-family:Courier New,monospace;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.demo-notice{display:none}.skill-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.skill-card{position:relative;min-height:150px;padding:18px;border:3px solid var(--ink);background:#fff;box-shadow:5px 5px 0 var(--ink)}.skill-icon{display:grid;width:50px;height:50px;place-items:center;margin-bottom:20px;border:3px solid var(--ink);background:var(--yellow);color:var(--ink);font-size:16px;font-weight:900}.skill-asset-icon{display:block;width:56px;height:56px;margin-bottom:16px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(3px 3px 0 rgba(23,21,45,.28))}.skill-card:nth-child(3n+2) .skill-icon{background:var(--blue)}.skill-card:nth-child(3n+3) .skill-icon{background:var(--cyan);color:var(--ink)}.skill-card h3{margin:0 0 6px;font-size:13px}.skill-card small{color:#777089;font-size:8px;font-weight:900;letter-spacing:.14em}.project-list{display:grid;gap:14px}.project-card{display:grid;grid-template-columns:72px 1fr auto;align-items:start;gap:18px;padding:18px;border:3px solid var(--ink);background:#fff;box-shadow:5px 5px 0 var(--ink);transition:transform .12s ease,box-shadow .12s ease}.project-card:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--ink)}.project-number{display:grid;width:64px;height:64px;place-items:center;border:3px solid var(--ink);background:var(--blue);color:#fff;font-family:Impact,sans-serif;font-size:26px}.project-card[data-color=purple] .project-number{background:var(--purple);color:#fff}.project-card[data-color=cyan] .project-number,.project-card[data-color=green] .project-number{background:var(--cyan);color:var(--ink)}.project-card small{color:var(--cyan-dark);font-size:8px;font-weight:900;letter-spacing:.12em}.project-card h3{margin:4px 0 6px;font-size:17px;line-height:1.2}.project-card p{max-width:560px;margin:0 0 10px;font-size:13px}.project-card a,.project-card .disabled-link{display:inline-flex;min-width:54px;height:54px;align-items:center;justify-content:center;border:3px solid var(--ink);background:var(--yellow);box-shadow:4px 4px 0 var(--ink);color:var(--ink);font-size:22px;font-weight:900;text-decoration:none}.project-card .disabled-link{opacity:.38;cursor:not-allowed}.timeline{position:relative;display:grid;gap:22px;padding-left:35px}.timeline:before{position:absolute;top:12px;bottom:12px;left:10px;width:5px;border:2px solid var(--ink);background:var(--purple);content:""}.timeline-item{position:relative;padding:22px;border:3px solid var(--ink);background:#fff;box-shadow:5px 5px 0 var(--ink)}.timeline-item:before{position:absolute;top:28px;left:-35px;width:18px;height:18px;border:3px solid var(--ink);background:var(--yellow);content:""}.timeline-period{display:inline-block;margin-bottom:11px;padding:5px 8px;background:var(--ink);color:var(--yellow);font-size:9px;font-weight:900}.timeline-item h3{margin:0 0 4px;font-size:19px}.timeline-item h4{margin:0;color:var(--cyan-dark);font-size:11px}.timeline-item p{margin-bottom:0}.contact-panel{text-align:center}.contact-panel h3{max-width:620px;margin-right:auto;margin-left:auto}.contact-panel>p{max-width:580px;margin:0 auto 28px}.contact-email,.contact-phone{display:inline-block;max-width:100%;padding:12px 18px;border:3px solid var(--ink);background:var(--cyan);box-shadow:4px 4px 0 var(--ink);color:var(--ink);font-size:clamp(13px,3vw,18px);font-weight:900;overflow-wrap:anywhere;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease}.contact-email:hover,.contact-phone:hover{transform:translate(1px,1px);box-shadow:3px 3px 0 var(--ink)}.contact-phone{margin-top:10px;margin-left:8px;background:#fff;font-size:clamp(12px,2.5vw,15px)}.social-list{justify-content:center;margin-top:28px}.social-list a,.social-list span{display:inline-block;padding:9px 12px;border:3px solid var(--ink);background:#fff;box-shadow:3px 3px 0 var(--ink);color:var(--ink);font-size:10px;font-weight:900;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.social-list a:hover{background:var(--cyan);transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink)}.social-list span{opacity:.4}.noscript-message{position:fixed;z-index:9999;right:20px;bottom:20px;left:20px;padding:16px;border:4px solid var(--ink);background:var(--yellow);color:var(--ink);font-weight:900;text-align:center}@keyframes status-pulse{50%{background:#fff}}@keyframes dialog-in{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes asset-float{50%{transform:translateY(-8px) rotate(-4deg)}}@keyframes asset-glow{50%{filter:drop-shadow(0 0 16px rgba(255,255,255,.78)) drop-shadow(7px 8px 0 rgba(23,21,45,.35))}}@media(max-width:1100px){.portfolio-nav{gap:6px}.portfolio-nav button{min-height:34px;padding:7px 10px;font-size:9px}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){:root{--header-height: 68px}.topbar{grid-template-columns:1fr auto;gap:12px}.portfolio-nav{display:none}.mobile-menu{display:block;grid-column:2;justify-self:end;min-height:var(--touch-zone);min-width:var(--touch-zone)}.availability{display:none}.start-board-wrap{width:min(100%,720px,calc(min(56vh,460px)*1.475))}.start-content{inset:9% 12% 33%}.start-decoration--hero{width:clamp(78px,11vw,120px)}.start-decoration--block{width:clamp(72px,10vw,108px)}.panel-grid{grid-template-columns:1fr;gap:24px}.avatar-card{min-height:220px}.project-card{grid-template-columns:74px 1fr}.project-card>:last-child{grid-column:2;justify-self:start}.dialog-header{padding:12px 18px 12px 40px}.dialog-asset{width:72px;height:72px}.dialog-content{padding:22px 20px 28px}.panel-asset-banner{grid-template-columns:120px 1fr;gap:16px;min-height:130px;padding:8px 18px 8px 10px}.panel-asset-banner img{width:115px;height:115px}}@media(hover:none),(max-width:800px){.touch-controls{display:flex;right:max(12px,var(--safe-right));bottom:max(52px,calc(12px + var(--safe-bottom)));left:max(12px,var(--safe-left))}.world-progress{right:max(78px,calc(70px + var(--safe-right)));bottom:max(18px,calc(10px + var(--safe-bottom)));left:max(78px,calc(70px + var(--safe-left)))}.game-actions{top:14px;right:max(12px,var(--safe-right));bottom:auto}.game-actions button{width:42px;height:42px}.game-hint{bottom:max(168px,calc(150px + var(--safe-bottom)))}}@media(max-width:700px){:root{--header-height: 58px;--page-gutter: 12px}.topbar{gap:10px;border-bottom-width:3px}.brand{gap:8px;min-width:0}.brand-mark{width:34px;height:34px;flex:0 0 auto;box-shadow:3px 3px #000;font-size:18px}.brand strong{font-size:12px;letter-spacing:.08em}.brand small{margin-top:3px;font-size:7px;letter-spacing:.18em}.mobile-menu{padding:7px 10px;font-size:9px}.game-shell{min-height:0}.start-screen{padding:10px 10px 14px}.start-stage{gap:12px}.start-board-wrap{width:min(100%,520px,calc(min(58vh,420px)*1.475))}.start-board{filter:drop-shadow(0 12px 0 rgba(5,8,18,.5))}.start-content{inset:8% 10% 32%}.start-decoration--block{top:-4%;left:-2%;width:68px}.start-decoration--hero{top:-8%;right:-2%;width:76px}.start-kicker{gap:8px;font-size:8px;letter-spacing:.16em}.start-kicker span{width:18px}.eyebrow{margin:6px 0 3px;font-size:9px;letter-spacing:.18em}.start-screen h1{font-size:clamp(32px,10vw,48px);line-height:.88;text-shadow:3px 3px 0 #000000}.start-screen h1 em{-webkit-text-stroke:1.5px var(--ink)}.start-copy{max-width:280px;margin:8px auto 10px;font-size:12px;line-height:1.4}.pixel-button{min-height:44px;gap:8px;padding:8px 16px;border-width:3px;font-size:12px}.pixel-button--primary{box-shadow:4px 4px 0 var(--ink)}.start-controls{gap:6px 8px;margin-top:10px;font-size:8px}.start-controls span:last-child{display:none}kbd{min-width:20px;height:20px}.skip-game{font-size:9px}.hud{top:12px;left:max(10px,var(--safe-left));gap:12px}.hud-player,.hud-world,.hud-hearts{display:none}.hud-block small{font-size:7px}.hud-block strong{font-size:12px}.toast{top:64px;max-width:min(92vw,360px);padding:8px 12px;font-size:9px}.skill-grid{grid-template-columns:1fr;gap:12px}.skill-card{min-height:0;padding:14px}.skill-icon{width:42px;height:42px;margin-bottom:12px;font-size:14px}.skill-asset-icon{width:48px;height:48px;margin-bottom:12px}.project-card{grid-template-columns:48px 1fr;gap:12px;padding:14px;border-width:3px;box-shadow:5px 5px 0 var(--ink)}.project-number{width:48px;height:48px;font-size:22px}.project-card h3{font-size:16px}.project-card p{margin-bottom:10px;font-size:12px}.project-card>:last-child{grid-column:1 / -1}.project-card a,.project-card .disabled-link{min-width:48px;height:44px;font-size:18px}.timeline{padding-left:28px;gap:16px}.timeline-item{padding:14px}.timeline-item:before{left:-28px;width:14px;height:14px}.timeline-item h3{font-size:16px}.content-dialog{width:calc(100vw - 16px - var(--safe-left) - var(--safe-right));max-width:calc(100vw - 16px - var(--safe-left) - var(--safe-right));max-height:calc(100dvh - 16px - var(--safe-top) - var(--safe-bottom))}.dialog-frame{max-height:calc(100dvh - 16px - var(--safe-top) - var(--safe-bottom));border-width:3px;box-shadow:0 0 0 1px #22d3ee33,5px 6px #0006}.dialog-header{gap:10px;padding:12px}.dialog-heading{gap:8px}.dialog-asset{width:44px;height:44px}.dialog-header h2{font-size:clamp(18px,6vw,26px)}.dialog-close{width:36px;height:36px;font-size:22px}.dialog-content{padding:16px 14px 20px}.dialog-footer{padding:10px 12px}.dialog-footer button{min-height:36px;padding:7px 12px}.panel-copy h3,.contact-panel h3{margin-bottom:14px;font-size:clamp(26px,8vw,40px)}.panel-copy p,.contact-panel p,.project-card p,.timeline-item p{font-size:13px;line-height:1.55}.panel-asset-banner{grid-template-columns:1fr;gap:8px;min-height:0;margin-bottom:18px;padding:12px 14px;text-align:center}.panel-asset-banner img{width:72px;height:72px;margin:0 auto}.avatar-card{min-height:180px}.avatar-card .panel-feature-asset{width:min(58%,160px);max-height:160px}.contact-asset{width:min(140px,42vw);max-height:120px;margin:0 auto 10px}.contact-email,.contact-phone{margin-left:0;padding:11px 14px;border-width:3px;box-shadow:3px 3px 0 var(--ink);font-size:clamp(12px,3.6vw,15px)}.contact-phone{margin-top:8px}.social-list{margin-top:20px;gap:8px}.dialog-footer{gap:12px;padding:10px 28px 10px 12px}.dialog-footer>span{display:none}.dialog-footer button{margin-left:auto;min-height:40px;padding:8px 10px}.touch-dpad{width:108px;height:108px}.touch-jump{width:78px;height:78px}.world-progress{right:max(64px,calc(56px + var(--safe-right)));left:max(64px,calc(56px + var(--safe-left)))}#world-progress-player{width:24px;height:24px}}@media(max-width:400px){:root{--header-height: 54px}.brand-mark{width:30px;height:30px;font-size:16px}.brand strong{font-size:11px}.brand small{display:none}.start-board-wrap{width:min(100%,calc(min(54vh,360px)*1.475))}.start-content{inset:7% 8% 31%}.start-decoration--block{width:54px}.start-decoration--hero{width:62px}.start-screen h1{font-size:clamp(28px,11vw,38px)}.start-copy{max-width:230px;margin:6px auto 8px;font-size:11px}.pixel-button{min-height:42px;padding:8px 14px;font-size:11px}.start-controls{display:none}.skill-grid{grid-template-columns:1fr}.touch-dpad{width:96px;height:96px}.touch-jump{width:70px;height:70px}.touch-controls{bottom:max(48px,calc(8px + var(--safe-bottom)))}.game-hint{bottom:max(150px,calc(130px + var(--safe-bottom)));padding:6px 10px 6px 6px;font-size:9px}.game-hint-key{width:24px;height:24px}}@media(max-height:680px){.start-board-wrap{width:min(100%,calc(min(52vh,360px)*1.475))}.start-content{top:7%;bottom:30%}.start-kicker,.start-copy,.start-controls{display:none}.eyebrow{margin-top:4px;margin-bottom:2px}.start-screen h1{font-size:clamp(32px,5.5vw,48px)}.pixel-button{min-height:42px;margin-top:8px}.start-decoration--block,.start-decoration--hero{width:clamp(58px,9vw,90px)}}@media(max-height:480px)and (max-width:900px){:root{--header-height: 48px}.brand small{display:none}.start-screen{padding:6px 10px}.start-stage{gap:8px}.start-board-wrap{width:min(100%,560px,calc(min(68vh,280px)*1.475))}.start-content{inset:8% 10% 28%}.start-decoration--block,.start-decoration--hero{display:none}.start-screen h1{font-size:clamp(24px,6vw,36px)}.eyebrow{margin-top:2px;font-size:8px}.pixel-button{min-height:38px;margin-top:6px;padding:6px 14px;font-size:11px}.skip-game{font-size:9px}.hud{top:8px;left:10px}.touch-controls{bottom:max(40px,calc(6px + var(--safe-bottom)))}.touch-dpad{width:88px;height:88px}.touch-jump{width:64px;height:64px}.game-actions{top:8px;right:8px}.game-actions button{width:36px;height:36px;font-size:15px}.game-hint{bottom:max(120px,calc(100px + var(--safe-bottom)))}.content-dialog,.dialog-frame{max-height:calc(100dvh - 12px - var(--safe-top) - var(--safe-bottom))}.dialog-header{padding:10px 12px}.dialog-asset{width:40px;height:40px}.dialog-content{padding:14px 12px 18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
