@import"https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg: #f7f7f5;--text: #1c1c1a;--text-secondary: #6d6d68;--border: #deded8;--hover: #ecece7;--accent: #deded6;--max-width: 720px;--font-sans: "Instrument Sans", "Inter", "Geist", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", "Geist Mono", "JetBrains Mono", ui-monospace, monospace;--expo-in: cubic-bezier(.16, 1, .3, 1)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #111110;--text: #e8e8e3;--text-secondary: #94948e;--border: #2c2c29;--hover: #1d1d1b;--accent: #30302c}}[data-theme=dark]{--bg: #111110;--text: #e8e8e3;--text-secondary: #94948e;--border: #2c2c29;--hover: #1d1d1b;--accent: #30302c}[data-theme=light]{--bg: #f7f7f5;--text: #1c1c1a;--text-secondary: #6d6d68;--border: #deded8;--hover: #ecece7;--accent: #deded6}*{box-sizing:border-box}html{view-transition-name:root}.wrap{pointer-events:none}.wrap a,.wrap button,.wrap [role=button]{pointer-events:auto}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:17px;line-height:1.7;transition:background-color .15s ease,color .15s ease;text-rendering:optimizeLegibility}::selection{background:var(--accent)}.wrap{max-width:var(--max-width);margin:0 auto;padding:0 28px}@media (max-width: 640px){.wrap{padding:0 16px}body{font-size:16px}main{padding:8px 0 40px}.hero{padding:4px 0 8px}.site-footer{flex-direction:column;gap:12px;padding:20px 0 32px}}.site-header{padding:32px 0 28px;display:flex;align-items:baseline;justify-content:space-between;gap:24px;border-bottom:1px solid transparent}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;padding:8px;background:var(--hover);border:1px solid var(--border);border-radius:8px;cursor:pointer}.hamburger-line{display:block;height:1.5px;background:var(--text);border-radius:999px;transition:transform .18s ease,opacity .18s ease;transform-origin:center}.hamburger-line.open:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.hamburger-line.open:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger-line.open:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.site-title{font-size:16px;font-weight:600;letter-spacing:-.02em;color:var(--text);text-decoration:none;white-space:nowrap}.site-title:hover{opacity:.8}.nav{display:flex;align-items:center;gap:20px;font-size:14.5px}@media (min-width: 641px){.site-header{position:relative}.site-header .nav{position:absolute;left:50%;transform:translate(-50%);margin:0;justify-content:center}}.nav a{color:var(--text-secondary);text-decoration:none;transition:color .15s ease,opacity .15s ease;position:relative}.nav a:hover{color:var(--text)}.nav a.active{color:var(--text);font-weight:500}.nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--text);opacity:.35}@media (max-width: 640px){.site-header{flex-direction:row;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;margin-top:8px;margin-left:-4px;margin-right:-4px}.site-header.glass{backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%)}.hamburger{display:flex}.nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:4px;font-size:15px;margin-top:12px;padding:10px;background:#ffffff0f;backdrop-filter:blur(40px) saturate(180%) brightness(1.06);-webkit-backdrop-filter:blur(40px) saturate(180%) brightness(1.06);border:1px solid rgba(255,255,255,.18);border-radius:20px;box-shadow:0 20px 60px #00000024,0 8px 20px #00000014,inset 0 1px #ffffff73,inset 0 -1px #0000000a;position:relative;overflow:hidden;animation:navDrop .38s cubic-bezier(.16,1,.3,1)}.nav:before{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:19px;background:linear-gradient(180deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,.04) 42%,transparent 72%);pointer-events:none;opacity:1}.nav:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:20px;background:radial-gradient(600px circle at 0% 0%,rgba(255,255,255,.12),transparent 55%);pointer-events:none}.nav.nav-open{display:flex}.nav a{position:relative;z-index:1;padding:13px 16px;width:100%;border-radius:12px;transition:background .18s ease,color .18s ease,transform .18s ease;font-weight:500;letter-spacing:-.01em}.nav a:hover{background:#ffffff1a;transform:none}.nav a.active{background:var(--text);color:var(--bg);box-shadow:0 2px 10px #0000001a,inset 0 1px #fff3}[data-theme=dark] .nav,:root:not([data-theme=light]) .nav{background:#12121252;border-color:#ffffff1f;box-shadow:0 20px 60px #0006,inset 0 1px #ffffff1a}[data-theme=dark] .nav:before,:root:not([data-theme=light]) .nav:before{background:linear-gradient(180deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.02) 42%,transparent 72%)}[data-theme=dark] .nav a:hover{background:#ffffff14}.nav a:hover{background:var(--hover);transform:translate(2px)}.nav a.active{background:var(--text);color:var(--bg)}.nav a.active:after{display:none}@keyframes navDrop{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}}@media (max-width: 380px){.nav{gap:10px;font-size:13.5px}.site-title{font-size:15px}}.theme-toggle{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:48px;height:28px;border-radius:999px;border:1px solid var(--border);background:var(--hover);position:relative;cursor:pointer;padding:0;margin-left:8px;flex-shrink:0;transition:background .2s ease,border-color .2s ease;vertical-align:middle;overflow:hidden}.theme-toggle:hover{border-color:var(--text-secondary);background:var(--accent)}.theme-toggle:focus-visible{outline:2px solid var(--text);outline-offset:2px}.toggle-knob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:var(--bg);border:1px solid var(--border);box-shadow:0 1px 3px #00000024,0 0 0 1px #00000008;display:grid;place-items:center;transition:transform .32s cubic-bezier(.34,1.56,.64,1),background .2s ease,border-color .2s ease;will-change:transform}.theme-toggle:active .toggle-knob{transform:scale(.96)}[data-theme=dark] .toggle-knob{transform:translate(20px)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .toggle-knob{transform:translate(20px)}}.toggle-icon{position:absolute;width:14px;height:14px;color:var(--text-secondary);transition:opacity .22s ease,transform .32s cubic-bezier(.34,1.56,.64,1),rotate .32s ease}.icon-sun{opacity:0;transform:scale(.6) rotate(-90deg)}.icon-moon,[data-theme=dark] .icon-sun{opacity:1;transform:scale(1) rotate(0)}[data-theme=dark] .icon-moon{opacity:0;transform:scale(.6) rotate(90deg)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .icon-sun{opacity:1;transform:scale(1) rotate(0)}:root:not([data-theme=light]) .icon-moon{opacity:0;transform:scale(.6) rotate(90deg)}}@media (prefers-reduced-motion: reduce){.toggle-knob,.toggle-icon{transition:none}}h1,h2,h3{font-weight:600;letter-spacing:-.03em;line-height:1.1;color:var(--text);margin:0}h1{font-size:clamp(32px,5vw,42px);line-height:1.05}h2{font-size:20px;line-height:1.2;margin-top:40px;margin-bottom:12px}h3{font-size:16px;margin-top:28px}p{margin:0 0 16px;max-width:62ch}.lead{font-size:18px;line-height:1.6;color:var(--text-secondary);margin-top:10px;margin-bottom:20px;max-width:60ch}.muted{color:var(--text-secondary)}.small{font-size:13.5px;line-height:1.5}.mono{font-family:var(--font-mono);font-size:13px;letter-spacing:.01em}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--border);transition:color .15s ease,text-decoration-color .15s ease}.prose a{text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px}.prose a:hover{text-decoration-color:var(--text-secondary)}.link-list a,.nav a,.plain-link{text-decoration:none}.links-list a,.writing-list a,.project-title a{text-decoration:none;text-underline-offset:3px;text-decoration-thickness:1px;display:inline-block;transition:color .15s ease,transform .15s ease,text-decoration-color .15s ease,opacity .15s ease}.links-list a:hover,.writing-list a:hover,.project-title a:hover{text-decoration:underline;text-decoration-color:var(--text-secondary);transform:translate(2px);color:var(--text)}main{padding:12px 0 64px}.section{margin-top:48px}.section-label{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:16px}.divider{border:none;border-top:1px solid var(--border);margin:40px 0}.hero{padding:8px 0 12px}.hero h1{margin-bottom:12px}.hero p,.hero .muted a{color:var(--text)}.writing-list{list-style:none;padding:0;margin:0}.writing-list li{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--border);font-size:15.5px}.writing-list li:last-child{border-bottom:none}.writing-list a{text-decoration:none}.writing-list a:hover{text-decoration:underline;text-decoration-color:var(--text-secondary)}.writing-list .date{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);white-space:nowrap}.project-list{list-style:none;padding:0;margin:0}.project-list li{padding:14px 0;border-bottom:1px solid var(--border)}.project-list li:last-child{border-bottom:none}.project-title{font-weight:500;font-size:16px}.project-desc{color:var(--text-secondary);font-size:14.5px;margin-top:4px;max-width:58ch}.project-meta{font-family:var(--font-mono);font-size:12.5px;color:var(--text-secondary);margin-top:6px}.year-label{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);margin:28px 0 8px}.blog-list{list-style:none;padding:0;margin:0}.blog-item{display:flex;justify-content:space-between;gap:16px;padding:12px 4px;margin:0 -4px;border-bottom:1px solid var(--border);border-radius:6px;text-decoration:none;transition:background .15s ease,padding .15s ease}.blog-item:last-child{border-bottom:none}.blog-item:hover{background:var(--hover);padding-left:8px;padding-right:8px}.blog-title{font-size:15.5px;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px;text-decoration-thickness:1px;transition:text-decoration-color .15s ease,color .15s ease}.blog-item:hover .blog-title{text-decoration-color:var(--text);color:var(--text)}.blog-date{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);white-space:nowrap;transition:color .15s ease}.blog-item:hover .blog-date{color:var(--text-secondary)}.prose{max-width:62ch}.prose h2{margin-top:36px}.prose ul,.prose ol{padding-left:22px;margin:0 0 16px}.prose li{margin:6px 0}.prose blockquote{border-left:1px solid var(--border);margin:20px 0;padding:4px 16px;color:var(--text-secondary)}.prose code{font-family:var(--font-mono);font-size:.92em;background:var(--hover);padding:1px 5px;border-radius:4px;border:1px solid var(--border)}.prose pre{background:var(--hover);border:1px solid var(--border);border-radius:6px;padding:16px;overflow-x:auto;font-family:var(--font-mono);font-size:13.5px;line-height:1.6}.prose pre code{background:none;border:none;padding:0}.prose hr{border:none;border-top:1px solid var(--border);margin:32px 0}.links-group{margin-top:32px}.links-group h2{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-weight:500;margin-bottom:10px}.links-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.links-list li{padding:14px 16px;border-radius:14px;background:#ffffff0f;backdrop-filter:blur(28px) saturate(180%) brightness(1.06);-webkit-backdrop-filter:blur(28px) saturate(180%) brightness(1.06);border:1px solid rgba(255,255,255,.16);box-shadow:0 8px 24px #00000014,inset 0 1px #fff6;display:flex;flex-direction:column;gap:4px;transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.links-list li:hover{background:#ffffff1a;transform:translateY(-1px);box-shadow:0 12px 32px #0000001f,inset 0 1px #ffffff80}.links-list a{font-weight:500;width:fit-content;font-size:15.5px}.links-list .desc{color:var(--text-secondary);font-size:14px;line-height:1.5}.inline-list{color:var(--text-secondary)}.inline-list strong{color:var(--text);font-weight:500}.glass{background:linear-gradient(135deg,color-mix(in srgb,var(--bg) 55%,transparent),color-mix(in srgb,var(--bg) 28%,transparent));backdrop-filter:blur(28px) saturate(200%) brightness(1.08);-webkit-backdrop-filter:blur(28px) saturate(200%) brightness(1.08);border:1px solid rgba(255,255,255,.22);box-shadow:0 12px 40px #0000001a,0 2px 10px #0000000f,inset 0 1px #ffffff9e,inset 0 -1px #ffffff1f;position:relative;overflow:hidden}.glass:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,.06) 22%,transparent 42%,transparent 100%);pointer-events:none;opacity:.85}.glass-strong{background:linear-gradient(135deg,color-mix(in srgb,var(--bg) 50%,transparent),color-mix(in srgb,var(--bg) 22%,transparent));backdrop-filter:blur(32px) saturate(210%) brightness(1.1);-webkit-backdrop-filter:blur(32px) saturate(210%) brightness(1.1);border:1px solid rgba(255,255,255,.26);box-shadow:0 16px 48px #0000001f,0 4px 16px #00000014,inset 0 1px #ffffffad,inset 0 -1px #ffffff24}[data-theme=dark] .glass,:root:not([data-theme=light]) .glass{background:linear-gradient(135deg,color-mix(in srgb,var(--bg) 62%,transparent),color-mix(in srgb,var(--bg) 30%,transparent));border-color:#ffffff1a;box-shadow:0 12px 40px #00000059,0 2px 10px #0003,inset 0 1px #ffffff1a,inset 0 -1px #0003}[data-theme=dark] .glass:before,:root:not([data-theme=light]) .glass:before{background:linear-gradient(105deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.02) 22%,transparent 42%);opacity:1}.site-footer{margin-top:64px;padding:24px 0 40px;border-top:1px solid var(--border);font-size:13.5px;color:var(--text-secondary);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.site-footer a{color:var(--text-secondary);text-decoration:none}.site-footer a:hover{color:var(--text);text-decoration:underline;text-decoration-color:var(--border)}a:focus-visible,button:focus-visible{outline:2px solid var(--text);outline-offset:2px;border-radius:2px}@keyframes blueDrift{0%{transform:translate(-4%) scale(1);opacity:1}50%{transform:translate(4%) scale(1.02);opacity:.9}to{transform:translate(-4%) scale(1);opacity:1}}@keyframes blueSlide{0%{transform:translate(-10%);opacity:.7}50%{transform:translate(30%);opacity:1}to{transform:translate(-10%);opacity:.7}}::view-transition-group(root){animation-timing-function:var(--expo-in)}::view-transition-new(root){mask:url(https://media.tenor.com/cyORI7kwShQAAAAi/shigure-ui-dance.gif) center / 0 no-repeat;animation:scale 3s;animation-fill-mode:both}::view-transition-old(root),.dark::view-transition-old(root){animation:scale 3s;animation-fill-mode:both}@keyframes scale{0%{-webkit-mask-size:0;mask-size:0}10%{-webkit-mask-size:50vmax;mask-size:50vmax}90%{-webkit-mask-size:50vmax;mask-size:50vmax}to{-webkit-mask-size:2000vmax;mask-size:2000vmax}}@media (max-width: 640px){.hero{padding:18px 14px 20px;margin:8px -4px 0;border-radius:14px;background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);border:1px solid color-mix(in srgb,var(--border) 85%,transparent);box-shadow:0 6px 20px #0000000f}.hero h1{gap:6px!important;margin-bottom:8px}.hero h1 span:first-child{font-size:clamp(16px,4.5vw,19px)!important;opacity:.9}.hero h1 span:last-child{font-size:clamp(30px,9vw,38px)!important;line-height:1.02!important}.hero .lead{font-size:15.5px;line-height:1.55;margin-top:12px;margin-bottom:10px}.hero .prose p{font-size:15px;line-height:1.65}}@media (max-width: 640px){.footer-grid{grid-template-columns:1fr!important;gap:24px!important}}@media (max-width: 640px){.writing-list li{flex-direction:column;align-items:flex-start;gap:4px;padding:12px 0}.blog-item{flex-direction:column;align-items:flex-start;gap:4px}div[style*=gridTemplateColumns]{grid-template-columns:1fr!important}.glass{backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%)}.glass:before{opacity:.6}@keyframes blueDrift{0%{transform:none;opacity:.7}to{transform:none;opacity:.7}}h1 span{word-break:break-word}}@media (max-width: 640px){.trail-bg{opacity:.45!important}}@media (max-width: 480px){.trail-bg{display:none!important}}@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}::view-transition-group(root),::view-transition-old(root),::view-transition-new(root){animation:none!important}.glass{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}
