@import"https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@400;500;700&family=Shippori+Mincho:wght@400;500;600;700;800&display=swap";.page-surface{background:var(--bg);min-height:100vh;width:100%;color:var(--fg)}.page-surface #main{background:transparent}*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0a;--fg: #e8e4df;--fg-muted: #6b6560;--fg-subtle: #3a3632;--accent: #c4493a;--ink-wash-1: rgba(196, 73, 58, .04);--ink-wash-2: rgba(196, 73, 58, .025);--grain-opacity: .03;--border-line: rgba(255, 255, 255, .06);--font-body: "Zen Kaku Gothic New", sans-serif;--font-display: "Shippori Mincho", serif}html[data-theme=dark]{--bg: #0a0a0a;--fg: #e8e4df;--fg-muted: #6b6560;--fg-subtle: #3a3632;--accent: #c4493a;--ink-wash-1: rgba(196, 73, 58, .04);--ink-wash-2: rgba(196, 73, 58, .025);--grain-opacity: .03;--border-line: rgba(255, 255, 255, .06);color-scheme:dark}html[data-theme=light]{--bg: #f5f0e8;--fg: #1a1816;--fg-muted: #5c5652;--fg-subtle: #3a3632;--accent: #c4493a;--ink-wash-1: rgba(196, 73, 58, .08);--ink-wash-2: rgba(196, 73, 58, .04);--grain-opacity: .02;--border-line: rgba(0, 0, 0, .08);color-scheme:light}html{scroll-behavior:smooth}body{background:var(--bg);font-family:var(--font-body);color:var(--fg);line-height:1.6;min-height:100vh;transition:background-color .25s ease,color .25s ease}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes line-grow{0%{opacity:0;width:0}to{opacity:1;width:2rem}}@keyframes ink-fade-in{to{opacity:1}}@keyframes ink-drift{0%{transform:translate(0) scale(1)}to{transform:translate(30px,-20px) scale(1.1)}}.ink-wash{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0;animation:ink-fade-in 3s ease-out .5s forwards}.ink-wash:before{content:"";position:absolute;top:-20%;right:-10%;width:70vw;height:70vh;background:radial-gradient(ellipse at center,var(--ink-wash-1) 0%,transparent 70%);filter:blur(80px);animation:ink-drift 20s ease-in-out infinite alternate}.grain{position:fixed;inset:0;z-index:9999;pointer-events:none;opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:128px 128px}.theme-toggle{position:fixed;top:1.25rem;right:1.25rem;z-index:10000;width:2.5rem;height:2.5rem;border:1px solid var(--border-line);border-radius:999px;background:color-mix(in srgb,var(--bg) 85%,transparent);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .2s ease,transform .2s ease,background-color .2s ease}.theme-toggle:hover{transform:translateY(-1px);border-color:var(--accent)}.theme-toggle img{width:1.2rem;height:1.2rem}html[data-theme=dark] .theme-toggle img{filter:invert(1)}html[data-theme=light] .theme-toggle img{filter:none}#main{position:relative;z-index:1;min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:15vh 2rem 2rem}.main-container{max-width:480px;width:100%;margin:0 auto}.main-intro h1{font-family:var(--font-display);font-size:clamp(2.4rem,5vw,3.5rem);font-weight:800;line-height:1;letter-spacing:-.03em;margin-bottom:.5rem;color:var(--fg);opacity:0;animation:fade-up .9s ease-out .3s forwards}.main-links{display:flex;align-items:center;gap:.5rem;margin-bottom:2rem;font-size:.875rem;color:var(--fg-muted);opacity:0;animation:fade-up .9s ease-out .45s forwards}.main-links a{color:var(--fg-muted);text-decoration:none;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}.main-links a:hover{color:var(--accent);border-bottom-color:var(--accent)}.main-links-sep{color:var(--fg-muted);opacity:.6;-webkit-user-select:none;user-select:none}.divider{width:2rem;height:1px;background:var(--accent);margin-bottom:2rem;opacity:0;animation:line-grow 1s ease-out .7s forwards}.biography{font-size:1rem;line-height:1.8;color:var(--fg-muted);opacity:0;animation:fade-up .9s ease-out 1s forwards}.biography a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s ease}.student{text-decoration:line-through}.biography a:hover{border-bottom-color:var(--accent)}.experience-section{margin-top:3.5rem}.section-title{font-size:.6rem;text-transform:uppercase;letter-spacing:.25em;color:var(--fg-subtle);margin-bottom:1.2rem;font-weight:500;opacity:0;animation:fade-up .9s ease-out 1.15s forwards}.experience-section .divider{margin-bottom:1.5rem;animation:line-grow 1s ease-out 1.4s forwards}.experience-list{list-style:none}.experience-list li{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--fg-subtle);opacity:0;animation:fade-up .9s ease-out forwards}.experience-list li:nth-child(1){animation-delay:1.5s}.experience-list li:nth-child(2){animation-delay:1.65s}.experience-list li:nth-child(3){animation-delay:1.8s}.experience-list li:nth-child(4){animation-delay:1.95s}.experience-list li:nth-child(5){animation-delay:2.1s}.experience-list li:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.experience-title{font-size:clamp(.82rem,1.5vw,.92rem);color:var(--fg);font-weight:400}.experience-meta{font-size:.8125rem;color:var(--fg-muted);margin-bottom:.5rem}.plain-link{color:inherit;text-decoration:none}.plain-link:hover{text-decoration:underline}.experience-desc{font-size:.9375rem;line-height:1.6;color:var(--fg-muted);margin:0}@media only screen and (max-width:768px){#main{padding:1.5rem}.main-intro h1{font-size:2.2rem}.biography{font-size:.95rem}.experience-section{margin-top:2.5rem}.experience-list li{margin-bottom:1.5rem;padding-bottom:1.5rem}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#1a1a1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#2a2a2a}::selection{background:var(--accent);color:var(--fg)}::-moz-selection{background:var(--accent);color:var(--fg)}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
