@font-face{font-family:Handlee;src:url(/fonts/handlee-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Jost;src:url(/fonts/jost-latin.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Jost;src:url(/fonts/jost-latin.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #ffffff;--fg: #171715;--muted: #6f6f69;--name-ink: #3b3b37;--rail-top: #d8d8d3;--rail-bottom: #f2f2ef;--panel: #edede8;--panel-deep: #e2e2dc;--border: #dcdcd5;--menu-label: #8b8b84;--about-bg: #f2f1ed;--focus: #1c6fd6;--shadow: 0 24px 70px rgba(20, 20, 18, .16);--rail-w: clamp(48px, 8vw, 118px);--wave-a: #e9a7a0;--wave-b: #b9cbbd;color-scheme:light}:root[data-theme=dark]{--bg: #191a19;--fg: #eeede7;--muted: #a4a49c;--name-ink: #c7c7bf;--rail-top: #2d2e2a;--rail-bottom: #20211e;--panel: #272823;--panel-deep: #1e1f1c;--border: #3c3d38;--menu-label: #7c7d74;--about-bg: #f2f1ed;--focus: #8ab4ff;--shadow: 0 24px 70px rgba(0, 0, 0, .45);--wave-a: #8a5650;--wave-b: #3f5448;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{min-height:100%;background:var(--bg);scroll-behavior:smooth}body{margin:0;min-height:100%;background:var(--bg);color:var(--fg);font-family:Jost,system-ui,-apple-system,Segoe UI,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .25s ease,color .25s ease}html.has-dialog,html.has-dialog body{overflow:hidden}button,input{font:inherit}button,a{color:inherit}svg{display:block}:focus-visible{outline:2px solid var(--focus);outline-offset:4px}::selection{background:var(--fg);color:var(--bg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site{position:relative;min-height:100svh;isolation:isolate}.wave-scene{position:fixed;right:0;bottom:0;left:0;z-index:0;height:clamp(240px,58vh,620px);overflow:hidden;pointer-events:none}.wave-art{width:110%;height:100%;margin-left:-5%;animation:wave-drift 20s ease-in-out infinite alternate}.wave-stop-a-top{stop-color:var(--wave-a);stop-opacity:.5}.wave-stop-a-bottom{stop-color:var(--wave-a);stop-opacity:.08}.wave-stop-b-top{stop-color:var(--wave-b);stop-opacity:.45}.wave-stop-b-bottom{stop-color:var(--wave-b);stop-opacity:.06}.landing{position:relative;z-index:1;display:grid;place-items:center;min-height:100svh;padding:clamp(72px,9vh,120px) clamp(18px,4vw,64px) clamp(84px,10vh,132px) calc(var(--rail-w) + clamp(18px,3vw,48px));overflow:hidden}.name-image{width:min(100%,1120px);height:auto;overflow:visible;animation:name-arrive .9s cubic-bezier(.2,.8,.2,1) both}.name-text{font-family:Handlee,Comic Sans MS,cursive;font-size:230px;letter-spacing:-.02em}.name-stop{stop-color:var(--name-ink)}.name-stop-fade{stop-color:var(--name-ink);stop-opacity:0}.menu-rail{position:fixed;inset:0 auto 0 0;z-index:20;width:var(--rail-w);padding:0;border:0;background:linear-gradient(180deg,var(--rail-top),var(--rail-bottom));border-radius:0 clamp(18px,2.2vw,34px) clamp(18px,2.2vw,34px) 0 / 0 clamp(10px,1.2vw,18px) clamp(10px,1.2vw,18px) 0;color:var(--fg);cursor:pointer;overflow:hidden;transition:filter .2s ease;-webkit-tap-highlight-color:transparent}.menu-rail:hover{filter:brightness(1.03)}.menu-rail:focus-visible{outline-offset:-5px}.menu-glyph{position:absolute;top:clamp(16px,2.2vw,36px);left:50%;width:clamp(22px,2.6vw,40px);transform:translate(-50%);transition:opacity .18s ease,transform .18s ease}.menu-rail:hover .menu-glyph{opacity:.6;transform:translate(-50%) translate(3px)}.rail-label{position:absolute;top:50%;left:50%;color:var(--menu-label);font-family:Handlee,Comic Sans MS,cursive;font-size:clamp(22px,4.4vw,68px);line-height:1;letter-spacing:.12em;white-space:nowrap;pointer-events:none;transform:translate(-50%,-50%) rotate(-90deg)}.theme-dock{position:fixed;top:clamp(14px,2.4vw,30px);right:clamp(14px,2.4vw,30px);z-index:30}.theme-toggle{display:grid;place-items:center;width:clamp(36px,2.6vw,40px);height:clamp(36px,2.6vw,40px);padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);opacity:.4;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity .18s ease,background-color .18s ease,color .18s ease,transform .18s ease}.theme-toggle:hover,.theme-toggle:focus-visible{color:var(--fg);opacity:1;background:color-mix(in srgb,var(--fg) 7%,transparent)}.theme-toggle:hover{transform:translateY(-1px)}.theme-toggle svg{width:1.05rem;height:1.05rem}.theme-toggle .icon-moon{display:none}:root[data-theme=dark] .theme-toggle .icon-sun{display:none}:root[data-theme=dark] .theme-toggle .icon-moon{display:block}.credit{position:fixed;right:0;bottom:max(16px,env(safe-area-inset-bottom));left:var(--rail-w);z-index:5;margin:0;color:var(--muted);font-size:clamp(.72rem,.85vw,.82rem);letter-spacing:.01em;text-align:center;pointer-events:none}.credit p{margin:0}.credit a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;pointer-events:auto}.credit a:hover{color:var(--fg)}dialog{color:var(--fg)}dialog:focus,dialog:focus-visible{outline:none}dialog::backdrop{background:#0e0e0c5c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.menu-dialog{position:fixed;inset:0 auto 0 0;width:min(560px,88vw);max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:visible}.menu-dialog[open]{animation:sheet-in .34s cubic-bezier(.2,.8,.2,1) both}.menu-dialog[open]::backdrop{animation:backdrop-in .3s ease both}.menu-dialog.is-closing{animation:sheet-out .22s ease both}.menu-dialog.is-closing::backdrop{animation:backdrop-out .22s ease both}.menu-panel{position:relative;display:flex;flex-direction:column;height:100%;padding:clamp(18px,2vw,26px);padding-bottom:max(clamp(18px,2vw,26px),calc(env(safe-area-inset-bottom) + 10px));background:linear-gradient(180deg,var(--panel),var(--panel-deep));border-radius:0 clamp(18px,2.4vw,34px) clamp(18px,2.4vw,34px) 0 / 0 clamp(10px,1.4vw,20px) clamp(10px,1.4vw,20px) 0;box-shadow:18px 0 50px #00000029;overflow-y:auto;overscroll-behavior:contain}.menu-close{align-self:flex-start;width:clamp(34px,4vw,46px);margin:0 0 clamp(18px,4vh,40px);padding:0;border:0;background:transparent;color:inherit;cursor:pointer;transition:opacity .18s ease,transform .18s ease}.menu-close:hover{opacity:.6;transform:translate(2px)}.menu-close svg{width:100%;height:auto}.sheet-label{position:absolute;top:50%;right:clamp(10px,2vw,24px);color:var(--menu-label);font-family:Handlee,Comic Sans MS,cursive;font-size:clamp(36px,4.5vw,74px);line-height:1;letter-spacing:.1em;pointer-events:none;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg)}.menu-links{position:relative;display:flex;flex:1;flex-direction:column;justify-content:space-evenly;gap:.2rem;margin:clamp(18px,4vh,56px) 0}.menu-link{display:grid;grid-template-columns:1.15em 1fr;gap:.55em;align-items:center;width:100%;padding:.55em 12% .55em 0;border:0;background:transparent;color:inherit;font-family:Jost,system-ui,sans-serif;font-size:clamp(1.35rem,2.7vw,2.6rem);font-weight:300;line-height:1.2;text-align:left;text-decoration:none;cursor:pointer;transition:opacity .18s ease,transform .18s ease}.menu-link:hover{opacity:.6;transform:translate(4px)}.menu-link svg{width:100%;height:auto;stroke-width:1.4}.menu-footer{margin-top:auto;padding-top:1rem}.theme-row{display:flex;gap:1rem;align-items:center;justify-content:space-between;font-size:clamp(1rem,1.4vw,1.2rem)}.switch{position:relative;flex:0 0 auto;width:2.7rem;height:1.55rem;padding:0;border:1px solid var(--border);border-radius:999px;background:var(--panel-deep);cursor:pointer;transition:background-color .2s ease}.switch-thumb{position:absolute;top:50%;left:3px;width:1.05rem;height:1.05rem;border-radius:50%;background:var(--fg);transform:translateY(-50%);transition:transform .2s ease,background-color .2s ease}.switch[aria-checked=true]{background:color-mix(in srgb,var(--fg) 18%,var(--panel-deep))}.switch[aria-checked=true] .switch-thumb{transform:translate(1.08rem,-50%)}.menu-credit{margin:.9rem 0 0;color:var(--muted);font-size:clamp(.72rem,.8vw,.82rem);text-align:center}.menu-credit a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.menu-credit a:hover{color:var(--fg)}.about-dialog{width:min(640px,calc(100vw - 2rem));max-width:none;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);margin:auto;padding:0;border:0;background:transparent;overflow:visible}.about-dialog[open]{animation:modal-in .26s cubic-bezier(.2,.8,.2,1) both}.about-dialog[open]::backdrop{background:#0e0e0c94;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:backdrop-in .25s ease both}.about-dialog.is-closing{animation:modal-out .18s ease both}.about-dialog.is-closing::backdrop{animation:backdrop-out .18s ease both}.about-card{position:relative;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain;background:var(--about-bg);color:#151514;border-radius:clamp(16px,2.4vw,26px);box-shadow:var(--shadow)}.about-close{position:absolute;top:10px;right:10px;z-index:3;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgba(21,21,20,.12);border-radius:50%;background:#f2f1edd1;color:#151514;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:background-color .18s ease,transform .18s ease}.about-close:hover{background:#fff;transform:rotate(4deg)}.about-close svg{width:1.05rem;height:1.05rem}.about-art{display:block;width:100%;height:auto}.about-link{display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-top:1px solid rgba(21,21,20,.12);color:#151514;font-size:.95rem;text-decoration:none}.about-link:hover{opacity:.6}@keyframes wave-drift{0%{transform:translate(-1.6%)}to{transform:translate(.6%)}}@keyframes name-arrive{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}@keyframes sheet-in{0%{transform:translate(-100%)}to{transform:none}}@keyframes sheet-out{0%{transform:none}to{transform:translate(-100%)}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:none}}@keyframes modal-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(10px) scale(.98)}}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes backdrop-out{0%{opacity:1}to{opacity:0}}@media(max-width:640px){:root{--rail-w: 52px}.landing{padding:64px 14px 76px calc(var(--rail-w) + 14px)}.rail-label{font-size:22px;letter-spacing:.08em}.menu-glyph{top:14px;width:24px}.theme-dock{top:12px;right:12px}.wave-scene{height:clamp(200px,46vh,340px)}.menu-dialog{width:90vw}.menu-panel{padding:16px;padding-bottom:max(16px,calc(env(safe-area-inset-bottom) + 10px));border-radius:0 22px 22px 0/0 12px 12px 0}.sheet-label{right:6px;font-size:46px}.menu-links{margin:16px 0}.menu-link{font-size:clamp(1.25rem,6.2vw,1.8rem);padding-right:14%}.menu-credit{font-size:.72rem}.about-dialog{width:calc(100vw - 1.5rem);max-height:calc(100dvh - 1.5rem)}.about-card{max-height:calc(100dvh - 1.5rem)}}@media(max-height:560px){.menu-links{justify-content:flex-start;gap:.15rem;margin:10px 0}.menu-link{padding-top:.42em;padding-bottom:.42em;font-size:clamp(1.15rem,4vh,1.7rem)}.menu-close{margin-bottom:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
