:root{font-family:IBM Plex Mono,monospace;color:#e9e2ef;background:#292238;font-synthesis:none;color-scheme:dark}*{box-sizing:border-box}body,h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a,button,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}::selection{background:#f1bb90;color:#302739}.pixel-site{--panel: #302b43;--deep: #282338;--line: #514760;--text: #eee6f2;--muted: #c1b4cd;--accent: #f1bb90;--accent-ink: #2a2134;--soft: #3a324d;--shadow: #1b1628;color:var(--text);min-height:100svh;position:relative;isolation:isolate;display:grid;align-content:center;padding:48px 5%;background:#332642}.landscape{position:fixed;inset:0;z-index:-1;background:#3b284e url(/images/twilight.jpg) center bottom/cover no-repeat;image-rendering:pixelated;pointer-events:none;transition:filter .9s ease}.landscape:after{content:"";position:absolute;inset:0;background:#231b3530;transition:background .9s ease}.landscape-effects{position:absolute;inset:0;width:100%;height:100%;shape-rendering:crispEdges}.stars{fill:#fff1cc;transition:opacity .9s ease}.star-halo{opacity:.24}.star-twinkle{opacity:.15;animation:star-twinkle 5s ease-in-out infinite}@keyframes star-twinkle{0%,65%,to{opacity:.12}32%{opacity:1}}.water-light{fill:#e8b1bd}.water-ripple{opacity:.08;animation:water-shimmer 6s ease-in-out infinite}.water-ripple:nth-child(3n){fill:#ffd0a0}.water-ripple:nth-child(4n){fill:#aaa0d5}@keyframes water-shimmer{0%,to{opacity:.02;transform:translate(-2px)}40%{opacity:.26}65%{opacity:.12;transform:translate(3px)}}.day-scenery{opacity:0;transition:opacity .9s ease}.cloud-drift{animation:cloud-drift 80s linear infinite alternate}@keyframes cloud-drift{0%{transform:translate(-35px)}to{transform:translate(35px)}}.desktop{width:100%;max-width:1040px;margin:auto;min-width:0}.window{background:var(--panel);border:2px solid var(--shadow);box-shadow:0 0 0 1px var(--line),5px 5px #17112280;min-width:0}.titlebar{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:54px;padding:8px 18px;background:var(--deep);border-bottom:1px solid var(--line)}.site-name{font-size:12px;color:var(--muted);letter-spacing:.025em}.site-name:hover{color:var(--accent)}.settings{display:flex;gap:8px}.settings button{display:grid;place-items:center;width:40px;height:40px;padding:10px;background:var(--panel);border:1px solid var(--line)}.settings svg{width:16px;height:16px;fill:currentColor;shape-rendering:crispEdges}.settings button:hover{border-color:var(--accent);color:var(--accent)}.window-body{display:grid;grid-template-columns:224px minmax(0,1fr);height:580px}.profile{background:var(--deep);border-right:1px solid var(--line);padding:30px 24px}.portrait-frame{border:2px solid var(--accent);box-shadow:0 0 0 2px var(--deep),0 0 0 3px var(--line);margin-bottom:26px;aspect-ratio:1}.portrait-frame img{display:block;image-rendering:pixelated;object-fit:cover;width:100%;height:100%}.profile-name{font-family:"Press Start 2P",monospace;font-size:11px;font-weight:400;line-height:1.8;margin-bottom:12px;color:var(--text)}.profile>p{font-size:12px;line-height:1.9;color:var(--muted)}.profile-links{display:flex;flex-direction:column;border-top:1px solid var(--line);padding-top:17px;margin-top:24px;gap:2px}.profile-links a{display:flex;align-items:center;justify-content:space-between;min-height:38px;font-size:12px;color:var(--muted)}.profile-links a:hover{color:var(--accent)}.profile-links a>span{font-size:16px}.content-area{display:flex;flex-direction:column;min-width:0;min-height:0}.tabbar{display:flex;gap:0;flex-shrink:0;border-bottom:1px solid var(--line);background:var(--deep);padding:12px 24px 0}.tabbar button{position:relative;background:transparent;border:1px solid transparent;min-height:44px;padding:10px 16px;font-size:12px;color:var(--muted);white-space:nowrap}.tabbar button:hover{color:var(--accent)}.tabbar button[aria-selected=true]{background:var(--panel);border-color:var(--line);border-bottom-color:var(--panel);color:var(--accent)}.tabbar button[aria-selected=true]:after{position:absolute;content:"";height:2px;left:0;right:0;bottom:-2px;background:var(--panel)}.tab-pointer{display:none}.panels{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) var(--deep)}.panel{padding:34px 34px 40px;font-size:14px;line-height:1.9}.panel[hidden]{display:none}.panel>p{color:var(--muted);margin-bottom:20px;max-width:590px}h1,.panel-title{font-family:"Press Start 2P",monospace;font-size:25px;line-height:1.65;font-weight:400;color:var(--accent);margin-bottom:26px;letter-spacing:-1px;text-shadow:2px 2px var(--shadow)}.panel-title{font-size:21px}.intro{font-size:14px;line-height:1.95}.tech-block{border-top:1px solid var(--line);padding-top:23px;margin-top:29px}.small-label{font-size:11px;line-height:1.8;letter-spacing:.025em;font-weight:500;color:var(--muted)}.tech-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.tech-tags span{border:1px solid var(--line);background:var(--soft);font-size:11px;line-height:1.7;padding:4px 9px}.home-actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin-top:30px}.pixel-button{display:flex;justify-content:space-between;align-items:center;gap:25px;border:1px solid var(--shadow);box-shadow:3px 3px 0 var(--shadow);padding:10px 16px;min-height:44px;font-size:12px}.primary{background:var(--accent);color:var(--accent-ink)}.pixel-button:hover{translate:-1px -1px;box-shadow:4px 4px var(--shadow)}.pixel-button:active{translate:2px 2px;box-shadow:1px 1px var(--shadow)}.plain-link{font-size:12px;text-decoration:underline;text-underline-offset:5px;min-height:44px;display:inline-flex;align-items:center;gap:8px}.plain-link:hover{color:var(--accent)}.hobby-list{list-style:none;padding:0;margin:27px 0 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);gap:0 22px}.hobby-list li{padding:11px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--text)}.job{border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:25px}.job-date{font-size:10px;color:var(--muted);margin-bottom:9px}.job h3{font-size:17px;font-weight:500;line-height:1.7}.job-role{font-size:12px;color:var(--accent);margin:4px 0 14px}.job>p:last-of-type{font-size:13px;line-height:1.9;color:var(--muted)}.job details{margin-top:12px;font-size:12px;line-height:1.9;color:var(--muted)}summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:24px;min-height:36px;width:fit-content;color:var(--text)}summary::-webkit-details-marker{display:none}details[open] summary>span{rotate:45deg}details ul{margin:10px 0 0;padding-left:18px}details li{margin-bottom:10px}.email-box{background:var(--deep);border:1px solid var(--line);padding:22px;display:flex;flex-direction:column;align-items:start;gap:12px;margin:28px 0 30px}.email-box>.small-label{font-size:10px}.email-box>a{font-size:16px;color:var(--accent);overflow-wrap:anywhere;max-width:100%}.email-box>button{min-height:40px;padding:8px 12px;background:var(--panel);border:1px solid var(--line);font-size:11px;margin-top:3px}.email-box>button:hover{border-color:var(--accent)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;margin-top:12px;gap:0 25px}.contact-grid>a{display:flex;justify-content:space-between;align-items:center;min-height:48px;border-bottom:1px solid var(--line);font-size:12px}.contact-grid>a:hover{color:var(--accent)}.statusbar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 20px;border-top:1px solid var(--line);background:var(--deep);font-size:10px;color:var(--muted)}.skip-link{position:fixed;top:-100px;left:15px;z-index:10;background:var(--accent);color:var(--accent-ink);padding:12px}.skip-link:focus{top:15px}.paused *{animation-play-state:paused!important}.portrait-frame{animation:portrait-glow 4s ease-in-out infinite}@keyframes portrait-glow{50%{box-shadow:0 0 0 2px var(--deep),0 0 0 3px var(--accent),0 0 22px 3px color-mix(in srgb,var(--accent) 45%,transparent)}}.day{--panel: #f1e8d3;--deep: #e5d8bf;--line: #bcaa91;--text: #413845;--muted: #6a5964;--accent: #7a3e55;--accent-ink: #fff3dd;--soft: #e8dbc2;--shadow: #9c7c78;color-scheme:light}.day h1,.day .panel-title{text-shadow:none}.day .landscape{filter:brightness(1.08) saturate(.9)}.day .landscape:after{background:linear-gradient(transparent 55%,#ffd2a00a 80%,transparent)}.day .stars{opacity:0}.day .day-scenery{opacity:1}.day .water-light{fill:#fff2d5}@media (max-width: 900px){.pixel-site{padding:36px 4%}.window-body{grid-template-columns:180px minmax(0,1fr);height:600px}.profile{padding:28px 20px}.profile-name{font-size:10px}.profile>p,.profile-links a{font-size:11px}.tabbar{padding:12px 18px 0}.tabbar button{font-size:11px;padding:10px 12px}.panel{padding:30px 26px 36px;font-size:13px}.intro{font-size:13px}h1{font-size:24px}.panel-title{font-size:20px}.email-box>a{font-size:14px}}@media (max-width: 600px){.pixel-site{padding:24px 4%;display:block}.titlebar{padding:8px 12px;gap:10px;min-height:50px}.site-name{font-size:10px}.settings{gap:6px}.window-body{display:flex;flex-direction:column;height:auto}.profile{padding:20px;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:80px 1fr;gap:0 20px}.portrait-frame{width:80px;grid-row:1/4;margin:0}.profile-name{font-size:11px;margin:4px 0 9px}.profile>p{font-size:12px;line-height:1.75}.profile-links{grid-column:1/-1;flex-direction:row;border:0;padding:0;margin:18px 0 0;gap:24px}.profile-links a{font-size:11px;min-height:32px;gap:12px}.tabbar{padding:12px 12px 0;justify-content:space-between}.tabbar button{font-size:11px;padding:10px 12px;flex:1}.panels{overflow:visible}.panel{padding:28px 22px 32px;font-size:13px}.panel>p{line-height:1.9;margin-bottom:18px}h1{font-size:clamp(19px,5.4vw,25px);letter-spacing:-.7px;margin-bottom:23px}.panel-title{font-size:19px;letter-spacing:-.7px;margin-bottom:23px}.small-label{font-size:11px}.tech-tags{gap:7px}.tech-tags span{font-size:10px;padding:4px 8px}.home-actions{gap:21px;margin-top:25px}.pixel-button{font-size:11px;padding:10px 12px;gap:16px}.plain-link{font-size:11px}.statusbar{padding:12px;font-size:8px;gap:8px}.email-box{padding:17px}.email-box>a{font-size:13px}.job h3{font-size:16px}.contact-grid{gap:0 18px}.hobby-list{gap:0 16px}.hobby-list li{font-size:11px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
