:root{color-scheme:light dark;--bg: #f8f1e7;--bg-deep: #2f1b19;--bg-glow: #ffb07a;--bg-ember: #d7635a;--text: #1f1415;--text-muted: #4a3739;--panel: rgba(255, 255, 255, .6);--panel-border: rgba(255, 255, 255, .4)}[data-theme=dark]{--bg: #0d0c0d;--bg-deep: #160e13;--bg-glow: #ff7a53;--bg-ember: #3d1719;--text: #f6efea;--text-muted: #ccb7b1;--panel: rgba(16, 16, 20, .65);--panel-border: rgba(255, 255, 255, .08)}*{box-sizing:border-box}html,body{height:100%;margin:0;font-family:Outfit,system-ui,sans-serif;color:var(--text);background:var(--bg);overflow-x:hidden;overflow-y:hidden}body{overflow:hidden;transition:background-color .3s ease,color .3s ease;min-height:100vh;position:relative}.site{min-height:100vh;display:grid;place-items:center}.page{position:relative;width:min(900px,90vw);height:min(600px,80vh);display:grid;place-items:center;z-index:1}.card{position:relative;z-index:2;display:grid;gap:16px;justify-items:center;padding:28px 36px;border-radius:24px;background:var(--panel);border:1px solid var(--panel-border);backdrop-filter:blur(18px);box-shadow:0 20px 60px #1e0c0c40;transition:background-color .3s ease,border-color .3s ease,box-shadow .3s ease}.avatar{width:140px;height:140px;border-radius:50%;border:3px solid rgba(255,255,255,.7);object-fit:cover;box-shadow:0 12px 30px #14080859}.links{display:flex;gap:16px;align-items:center}.ghost-link{text-decoration:none;color:var(--text);border:1px solid var(--panel-border);border-radius:999px;padding:8px 16px;font-size:.9rem;background:#fff3;display:inline-flex;align-items:center;line-height:1}.github-link svg{display:block}.hello-link{opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}.hello-link.visible{opacity:1;transform:translateY(0);pointer-events:auto}.toggle-button{border:none;background:transparent;color:var(--text);padding:4px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:0}.top-right{position:fixed;top:32px;right:32px;z-index:3}.toggle-button:focus-visible{outline:2px solid var(--bg-glow);outline-offset:4px}.parallax{position:absolute;inset:-20vh -20vw;overflow:hidden;z-index:0;--mx: 0;--my: 0;background:linear-gradient(160deg,#f3d8bf,#e6c29e 55%,#d1a27f);transition:background .5s ease}.parallax-layer{position:absolute;inset:0;transform:translateZ(0);background:none;transition:transform .2s ease-out}.parallax:before{content:"";position:absolute;inset:0;background:radial-gradient(80% 80% at calc(50% + var(--mx) * 42%) calc(45% + var(--my) * 32%),#ffaa5cfa,#ff8c408c 28%,#ff783800 60%);opacity:.95;mix-blend-mode:screen;pointer-events:none}.parallax:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,#ffb26000 10%,#c2482fe6 36%,#ff964600 66%);background-size:140% 140%;background-position:calc(50% + var(--mx) * -22%) calc(50% + var(--my) * 18%);opacity:1;mix-blend-mode:screen;pointer-events:none}[data-theme=dark] .parallax{background:linear-gradient(160deg,#201110,#3a1d1b 55%,#542524)}[data-theme=dark] .parallax-layer{background:none}[data-theme=dark] .parallax:before{background:radial-gradient(80% 80% at calc(50% + var(--mx) * 30%) calc(45% + var(--my) * 22%),#dc6046d9,#c84c3a73 36%,#c84c3a00 70%);opacity:.9}[data-theme=dark] .parallax:after{background:linear-gradient(120deg,#54989600 12%,#549896a6 38%,#54989600 68%);background-size:140% 140%;background-position:calc(50% + var(--mx) * -22%) calc(50% + var(--my) * 18%);opacity:.9}.mute{font-family:Fraunces,serif;font-size:.85rem;color:var(--text-muted)}.hello{display:grid;gap:12px;justify-items:center;text-align:center}.hello-message{font-size:clamp(1.4rem,3vw,2.1rem);font-weight:600;letter-spacing:.01em;color:var(--text)}.hello-message span{color:var(--text);margin-left:4px;opacity:.2}.hello-message span.caret{opacity:.85;animation:caret-blink .7s step-end infinite}@keyframes caret-blink{0%,49%{opacity:.85}50%,to{opacity:.1}}@media(max-width:720px){.top-right{top:16px;right:16px}.parallax{inset:0}.page{height:auto}.card{padding:24px}}@media(prefers-reduced-motion:reduce){.parallax-layer{transition:none}}
