@font-face{font-family:Dabo Display;src:url(fonts/bricolage.woff2) format("woff2");font-weight:200 800;font-stretch:75% 100%;font-display:swap}@font-face{font-family:Dabo Hand;src:url(fonts/dabo-hand.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:"Dabo Serif";src:url(fonts/dabo-serif-700.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:"Dabo Serif";src:url(fonts/dabo-serif-900.woff2) format("woff2");font-weight:900;font-display:swap}:root{--paper: #f4efe6;--paper-2: #ebe3d4;--card: #fbf8f2;--ink: #17140f;--ink-2: #5d564b;--line: rgba(23, 20, 15, .16);--accent: #ff4d1c;--accent-ink: #17140f;--hl: #ffe14d;--blue: #2d5bff;--green: #1d9a5b;--pink: #ff7ab6;--shadow: rgba(23, 20, 15, .9);--grain-opacity: .38;--f-display: "Dabo Display", "Bricolage Grotesque", "Noto Sans TC", system-ui, sans-serif;--f-body: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--f-text: "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--gutter: clamp(16px, 4vw, 48px);--maxw: 1180px;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);color-scheme:light}:root[data-lamp=off]{--paper: #0b0e17;--paper-2: #131a2a;--card: #111727;--ink: #efe9dc;--ink-2: #9ca3b6;--line: rgba(239, 233, 220, .14);--accent: #ff6a3d;--accent-ink: #0b0e17;--hl: #ffd23f;--blue: #86a2ff;--green: #4fd08e;--pink: #ff8fc4;--shadow: rgba(255, 210, 63, .85);--grain-opacity: 0;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.75 var(--f-text);overflow-x:hidden;transition:background-color .6s var(--ease-out),color .6s var(--ease-out)}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:var(--grain-opacity);transform:translateZ(0);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .22 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");transition:opacity .6s}img{max-width:100%;display:block}img{-webkit-user-drag:none;user-select:none;-webkit-touch-callout:none;pointer-events:none}a{color:inherit}button{font:inherit;color:inherit}::selection{background:var(--hl);color:#17140f}:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:6px}.mono{font-family:var(--f-mono);letter-spacing:.02em}.skip{position:absolute;left:12px;top:-60px;z-index:300;background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:8px}.skip:focus{top:12px}.sky{position:fixed;top:0;left:0;width:100%;height:100vh;height:100lvh;background:linear-gradient(#05070f,#0a0e1b 55%,#15162a 85%,#2a1f28);z-index:0;pointer-events:none;opacity:0;transition:opacity 1.2s ease}:root[data-lamp=off] .sky{opacity:1}.sky-ui{position:fixed;left:var(--gutter);bottom:14px;z-index:40;display:flex;flex-direction:column;align-items:flex-start;gap:8px;max-width:calc(100vw - var(--gutter) * 2 - 60px);opacity:0;visibility:hidden;transition:opacity .8s ease,visibility .8s}:root[data-lamp=off] .sky-ui{opacity:1;visibility:visible}.sky-cap{margin:0;padding:6px 10px;border-radius:8px;font-size:11px;line-height:1.5;color:#ffe1bed9;background:#0b0e1799;backdrop-filter:blur(4px);opacity:0;transform:translateY(6px);transition:opacity .6s,transform .6s;pointer-events:none}.sky-cap.show{opacity:1;transform:none}.sky-cap:empty{display:none}.sky-toggle{padding:6px 12px;border-radius:999px;cursor:pointer;border:1px solid rgba(255,225,190,.35);background:#0b0e178c;color:#ffe1bed9;font:500 12px var(--f-mono);backdrop-filter:blur(4px);transition:background-color .2s,color .2s,border-color .2s}.sky-toggle:hover{border-color:var(--hl);color:var(--hl)}.sky-toggle[aria-pressed=true]{background:var(--hl);color:#0b0e17;border-color:var(--hl)}main,.foot{position:relative;z-index:1}main{overflow-x:clip}.topbar{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:14px calc(var(--gutter) + 44px) 14px var(--gutter);pointer-events:none}.topbar>*{pointer-events:auto}.topbar:before{content:"";position:absolute;inset:0 0 -18px;z-index:-1;pointer-events:none;background:linear-gradient(var(--paper) 55%,color-mix(in srgb,var(--paper) 0%,transparent));opacity:0;transition:opacity .3s,background-color .6s}html.scrolled .topbar:before{opacity:1}.mark{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;text-decoration:none;color:var(--ink);font-size:66px;line-height:1;transition:transform .5s var(--ease-spring),color .6s}.mark .mini-o{margin:0}.mark:hover{transform:rotate(-10deg) scale(1.08)}.mini-o.hop{animation:hop .7s var(--ease-spring)}.nav{display:flex;gap:2px;padding:4px;background:var(--card);border:1.5px solid var(--ink);border-radius:999px;font-size:14px;font-weight:500;transition:background-color .6s,border-color .6s}.nav a{padding:6px 14px;white-space:nowrap;border-radius:999px;text-decoration:none;transition:background-color .25s,color .25s}.nav a:hover{background:var(--paper-2)}.nav a.on{background:var(--ink);color:var(--paper)}.lamp{position:fixed;z-index:60;top:0;right:calc(var(--gutter) - 4px);width:40px;height:108px;padding:0;border:0;background:none;cursor:grab;display:flex;flex-direction:column;align-items:center;transform-origin:50% 0;animation:sway 6s ease-in-out infinite}.lamp-cord{width:2px;flex:1;background:var(--ink);transition:background-color .6s}.lamp-knob{width:16px;height:22px;border-radius:8px 8px 10px 10px;background:var(--ink);border:2px solid var(--ink);transition:background-color .6s,box-shadow .6s,border-color .6s}:root[data-lamp=off] .lamp-knob{background:var(--hl);border-color:var(--hl);box-shadow:0 0 18px 4px #ffd23f8c}.lamp:hover{animation-duration:1.6s}.lamp.pull{animation:pull .55s var(--ease-spring)}.lamp:active{cursor:grabbing}@keyframes sway{0%,to{transform:rotate(2deg)}50%{transform:rotate(-2deg)}}@keyframes pull{0%{transform:translateY(0)}35%{transform:translateY(22px) scaleY(1.08)}to{transform:translateY(0)}}html.blown body{animation:flicker 1.4s steps(1) both}@keyframes flicker{0%,12%,20%,34%,50%{filter:brightness(1)}8%,16%,28%,42%,60%,to{filter:brightness(.25)}}.hero{position:relative;min-height:100svh;max-width:var(--maxw);margin:0 auto;padding:clamp(110px,18vh,170px) var(--gutter) 48px;display:flex;flex-direction:column;justify-content:center}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hero-hi{align-self:flex-start;margin:0 0 .1em;font:400 clamp(22px,3vw,34px)/1.2 "Dabo Hand","LXGW WenKai TC",var(--f-body);color:var(--ink-2);rotate:-3deg;transform-origin:left bottom;position:relative}.hero-hi:after{content:"";position:absolute;left:0;right:-.2em;bottom:-.18em;height:.3em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 C 20 2, 30 11, 48 6 S 80 2, 96 7 S 112 9, 118 4' fill='none' stroke='%23ff4d1c' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 100% 100%}.hero-id{display:flex;align-items:flex-end;gap:clamp(12px,2.4vw,34px)}.hero-name{margin:0;font-family:var(--f-display);font-weight:800;line-height:.86;letter-spacing:-.045em;font-size:clamp(6rem,26vw,21rem);font-variation-settings:"wght" 800,"wdth" 100,"opsz" 96;user-select:none}.word{display:inline-flex;align-items:baseline}.hero-name .ch{display:inline-block;transform-origin:50% 100%;transition:font-variation-settings .25s var(--ease-out),color .3s;font-variation-settings:"wght" var(--w, 800),"wdth" var(--wd, 100),"opsz" 96}.hero-name .ch.hot{color:var(--accent)}.hero-name .ch.hop,.buddy.hop{animation:hop .7s var(--ease-spring)}@keyframes hop{0%{transform:none}25%{transform:translateY(0) scale(1.06,.9)}50%{transform:translateY(-.16em) rotate(-5deg) scale(.96,1.05)}80%{transform:translateY(0) scale(1.04,.95)}to{transform:none}}.hero-name.wave .ch,.hero-name.wave .buddy{animation:hop .8s var(--ease-spring) both;animation-delay:calc(var(--i) * 90ms)}.buddy,.mini-o{--bw: .125em;position:relative;display:inline-block;flex:none;width:.57em;height:.57em;margin:0 0 -.012em .01em;padding:0;border:var(--bw) solid currentColor;border-radius:50%;background:transparent;color:inherit;font:inherit;transform-origin:50% 100%}.buddy{cursor:pointer;top:.0125em}.buddy,.mini-o{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:.12em solid transparent}.buddy.nightcap:before{content:"";position:absolute;z-index:2;pointer-events:none;left:.039em;top:-.49em;width:.62em;height:.475em;rotate:24deg;transform-origin:32% 79%;background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 92'><g stroke='%2317140f' stroke-width='3.2' stroke-linejoin='round'><path d='M14 72 C15 40 42 14 76 15 C99 16 115 32 111 58 C110 67 104 72 99 68 C101 53 93 42 81 43 C68 44 62 58 64 72 Z' fill='%233d5afe'/><rect x='7' y='64' width='64' height='18' rx='9' fill='%23fff6ea'/><circle cx='101' cy='72' r='10' fill='%23fff6ea'/></g><g fill='%23ffe14d'><circle cx='38' cy='44' r='3'/><circle cx='58' cy='28' r='2.4'/><circle cx='86' cy='26' r='2.6'/><circle cx='50' cy='56' r='2'/></g></svg>") no-repeat center / contain}.buddy.nightcap .zz{right:-3.8em;top:-.4em}.buddy.angry{animation:puff .9s var(--ease-spring) both;background:color-mix(in srgb,#ff6b6b 38%,transparent)}.buddy.angry .blush{opacity:1;transform:scale(1.35)}.buddy.angry .eye{height:.045em;border-radius:.02em}.buddy.angry .eye:after{display:none}.buddy.turned{animation:turnAway .5s ease both;background:transparent}.buddy.turned .eyes,.buddy.turned .blush{opacity:0;transition:opacity .2s}@keyframes puff{30%{transform:scale(1.12,1.08)}60%{transform:scale(1.06,1.1)}to{transform:scale(1.08)}}@keyframes turnAway{0%{transform:scale(1.08)}50%{transform:scaleX(.2)}to{transform:none}}.buddy:focus-visible{outline-offset:.05em}.eyes{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.055em;transform:translate(calc(var(--ex, 0) * .042em),calc(var(--ey, 0) * .034em));transition:transform .22s var(--ease-out)}.eye{position:relative;width:.078em;height:.105em;border-radius:50%;background:currentColor;transition:height .1s ease,border-radius .15s,background-color .15s}.eye:after{content:"";position:absolute;width:36%;height:28%;top:16%;right:14%;border-radius:50%;background:var(--paper)}.blink .eye,.mini-o.blink .eye{height:.014em}.blush{position:absolute;left:14%;top:64%;width:.07em;height:.035em;border-radius:50%;background:var(--pink);box-shadow:.135em 0 0 var(--pink);opacity:0;transition:opacity .3s}.buddy:hover .blush,.buddy.happy .blush{opacity:.9}.buddy.happy .eye{height:.05em;background:transparent;border:.024em solid currentColor;border-bottom:0;border-radius:.06em .06em 0 0}.buddy.happy .eye:after{display:none}.zz{position:absolute;right:-.2em;top:-.34em;font:700 .15em/1 var(--f-mono);color:var(--hl);opacity:0;pointer-events:none;letter-spacing:0}.zz,.zz i{display:inline-block;font-style:normal}.zz i{font-size:.8em;margin-left:.1em}:root[data-lamp=off] .buddy.sleep .eye{height:.016em}:root[data-lamp=off] .buddy.sleep .eye:after{display:none}:root[data-lamp=off] .buddy.sleep .zz{opacity:1;animation:snore 2.6s ease-in-out infinite}:root[data-lamp=off] .buddy.sleep .zz i:nth-child(1){animation:snore 2.6s .3s ease-in-out infinite}:root[data-lamp=off] .buddy.sleep .zz i:nth-child(2){animation:snore 2.6s .6s ease-in-out infinite}:root[data-lamp=off] .buddy.sleep{animation:breathe 2.6s ease-in-out infinite}@keyframes snore{0%,to{transform:translate(0);opacity:.9}50%{transform:translate(.15em,-.3em);opacity:.35}}@keyframes breathe{50%{transform:scale(1.03,.97)}}.seal{--seal: #d8321e;flex:none;display:inline-flex;flex-direction:column;align-items:center;gap:.04em;margin-bottom:clamp(6px,1.2vw,18px);padding:.34em .26em;font:900 clamp(16px,2.8vw,36px)/1.02 "Dabo Serif","Noto Serif TC",var(--f-body);color:#fff6ea;background:var(--seal);border-radius:.16em;box-shadow:inset 0 0 0 .1em var(--seal),inset 0 0 0 .15em #fff6eae6;rotate:-6deg;cursor:pointer;animation:sealIn .7s .5s var(--ease-spring) both;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 2.1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 2.1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}:root[data-lamp=off] .seal{--seal: #ff5a3c;color:#0b0e17;box-shadow:inset 0 0 0 .1em var(--seal),inset 0 0 0 .15em #0b0e17d9}.seal.again{animation:sealAgain .6s var(--ease-spring) both}@keyframes sealIn{0%{transform:scale(2.4) rotate(-14deg);opacity:0}55%{transform:scale(.92);opacity:1}to{transform:none;opacity:1}}@keyframes sealAgain{0%{transform:scale(2.4) rotate(-14deg);opacity:0}55%{transform:scale(.92);opacity:1}to{transform:none;opacity:1}}.motto{margin:clamp(26px,4.2vh,44px) 0 0;font:900 clamp(26px,4.4vw,54px)/1.25 "Dabo Serif","Noto Serif TC",var(--f-body);letter-spacing:.04em}.motto .m-01{position:relative;display:inline-block;color:var(--accent)}.motto .m-01:after{content:"";position:absolute;left:-.05em;right:-.05em;bottom:-.1em;height:.22em;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 14' preserveAspectRatio='none'%3E%3Cpath d='M3 9 C 40 3, 70 12, 110 7 S 170 3, 197 8' fill='none' stroke='%23ffcf1f' stroke-width='5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat left center / 100% 100%;clip-path:inset(0 100% 0 0);animation:drawIn 1s .9s var(--ease-out) forwards}@keyframes drawIn{to{clip-path:inset(0 0 0 0)}}.motto .m-inf{position:relative;display:inline-block}.motto .m-inf svg{position:absolute;left:50%;top:-.5em;width:1.3em;translate:-50% 0;overflow:visible}.inf-track,.inf-run{fill:none;stroke-width:3.2;stroke-linecap:round}.inf-track{stroke:var(--line)}.inf-run{stroke:var(--accent);stroke-dasharray:22 78;animation:infRun 3.2s linear infinite}@keyframes infRun{to{stroke-dashoffset:-100}}.status{display:inline-flex;align-items:center;gap:10px;align-self:flex-start;margin-top:20px;padding:7px 14px;border:1.5px solid var(--ink);border-radius:999px;background:var(--card);font-size:14px;font-weight:700;text-decoration:none;transition:transform .35s var(--ease-spring),box-shadow .3s,background-color .6s}.status:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--green)}.status span:last-child{transition:transform .35s var(--ease-spring)}.status:hover span:last-child{transform:translate(4px)}.caret{display:inline-block;width:.55em;height:1.1em;vertical-align:-.18em;background:var(--ink);margin-left:2px;animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.slashes{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;row-gap:4px;font-weight:700;font-size:clamp(16px,2.2vw,22px)}.slashes li{display:flex;align-items:baseline}.slashes li+li:before{content:"/";font:300 1.5em/1 var(--f-display);color:var(--accent);margin:0 .35em;display:inline-block;transform:translateY(.08em) skew(-6deg)}.slashes span{padding:0 .12em;border-radius:3px;background:linear-gradient(var(--hl),var(--hl)) no-repeat 0 88% / 0% 42%;transition:background-size .5s var(--ease-out)}:root[data-lamp=off] .slashes span{background-image:linear-gradient(#ffd23f59,#ffd23f59)}.slashes span.lit{background-size:100% 42%}.hero-down{margin-top:clamp(32px,7vh,64px);align-self:flex-start;font-size:14px;text-decoration:none;color:var(--ink-2);display:inline-flex;gap:8px;align-items:center}.hero-down span{display:inline-block;animation:bob 1.8s ease-in-out infinite}.hero-down:hover{color:var(--accent)}@keyframes bob{50%{transform:translateY(5px)}}.ribbon{position:relative;z-index:1;background:var(--accent);color:var(--accent-ink);rotate:-1.6deg;margin:20px -20px 0;overflow:hidden;border-block:2px solid var(--ink)}.ribbon-track{display:flex;width:max-content;gap:0;font:800 clamp(20px,3vw,30px)/1 var(--f-display);padding:14px 0;animation:marquee 32s linear infinite}.ribbon:hover .ribbon-track{animation-play-state:paused}.ribbon-track span{padding:0 .6em;white-space:nowrap}.ribbon-track b{font-weight:400}@keyframes marquee{to{transform:translate(-50%)}}.sec{max-width:var(--maxw);margin:0 auto;padding:clamp(80px,12vw,140px) var(--gutter) 0}.sec-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-bottom:clamp(28px,4vw,48px)}.sec-no{font:300 clamp(40px,7vw,76px)/1 var(--f-display);color:var(--accent);letter-spacing:-.03em}.sec-head h2{margin:0;font:900 clamp(30px,5vw,52px)/1.1 var(--f-body);letter-spacing:.02em}.sec-sub{width:100%;margin:4px 0 0;color:var(--ink-2);font-size:13px}html.js .reveal{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);transition-delay:var(--d, 0ms)}html.js .reveal.in{opacity:1;transform:none}.about-grid{display:grid;grid-template-columns:minmax(150px,250px) 1fr;gap:clamp(28px,5vw,70px);align-items:center}.about-bio p{margin:0;font-size:clamp(19px,2.3vw,27px);line-height:1.65;font-weight:500}.about-bio p+p{margin-top:.8em}.about-bio strong,.md strong{font-weight:900;background:linear-gradient(var(--hl),var(--hl)) no-repeat 0 90% / 100% 38%}:root[data-lamp=off] .about-bio strong,:root[data-lamp=off] .md strong{background-image:linear-gradient(#ffd23f52,#ffd23f52)}.me{position:relative;margin:0;width:100%;rotate:-4deg}.me-sticker{position:relative;display:block;width:100%;aspect-ratio:1;padding:0;border:0;background:none;cursor:pointer}.me-front,.me-back{position:absolute;inset:0;border-radius:50%;backface-visibility:hidden;transition:transform .8s var(--ease-spring);border:clamp(6px,.8vw,9px) solid var(--card);box-shadow:0 2px 0 1px var(--line),0 14px 30px -12px #00000073}.me-front{overflow:hidden;background:#fff}.me-front img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}.me-back{display:grid;place-items:center;text-align:center;background:var(--accent);color:#fff;font:900 clamp(20px,2.4vw,28px)/1.2 var(--f-body);transform:rotateY(180deg)}.me.flipped .me-front{transform:rotateY(-180deg)}.me.flipped .me-back{transform:rotateY(0)}.me-sticker:hover .me-front{transform:rotate(-4deg) scale(1.03)}.me.flipped .me-sticker:hover .me-front{transform:rotateY(-180deg)}.me.poked .me-sticker{animation:poke .4s var(--ease-spring)}@keyframes poke{30%{transform:scale(.9) rotate(-8deg)}60%{transform:scale(1.05) rotate(4deg)}}.me-tape{position:absolute;top:-6%;left:50%;width:46%;height:15%;translate:-50% 0;rotate:10deg;background:color-mix(in srgb,var(--hl) 78%,transparent);box-shadow:0 1px 2px #0000001f;clip-path:polygon(3% 0,97% 4%,100% 50%,97% 96%,2% 100%,0 50%);pointer-events:none}.me-say{position:absolute;right:-14%;top:4%;rotate:8deg;background:var(--ink);color:var(--paper);font:700 14px/1.3 var(--f-body);padding:8px 12px;border-radius:14px 14px 14px 2px;white-space:nowrap;opacity:0;scale:.6;transition:opacity .2s,scale .35s var(--ease-spring);pointer-events:none;z-index:2}.me-say.show{opacity:1;scale:1}.stats{display:grid;grid-template-columns:repeat(4,1fr);margin:clamp(40px,6vw,72px) 0 0;border-top:1.5px solid var(--ink)}.stats[hidden]{display:none}.stats div{display:flex;flex-direction:column;gap:8px;padding:18px 16px 16px 0;border-bottom:1.5px solid var(--line)}.stats div+div{padding-left:16px;border-left:1.5px solid var(--line)}.stats dt{font-size:13px;line-height:1.5;color:var(--ink-2);order:2}.stats dd{margin:0;font:800 clamp(34px,4.2vw,54px)/1 var(--f-display);letter-spacing:-.03em;white-space:nowrap}.stats dd small{font-size:.55em;margin-left:2px;letter-spacing:-.01em}.desk-wrap{margin-top:clamp(36px,5vw,60px)}.desk{position:relative;overflow:hidden;height:clamp(300px,30vw,360px);border:1.5px solid var(--ink);border-radius:22px;background:radial-gradient(circle at 1px 1px,var(--line) 1px,transparent 1.5px) 0 0 / 22px 22px,var(--card);touch-action:pan-y;transition:background-color .6s}.desk.shake{animation:deskShake .45s ease}@keyframes deskShake{20%{transform:translate(-6px) rotate(-.4deg)}40%{transform:translate(6px) rotate(.4deg)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.desk.space{background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.5) 1px,transparent 1.5px) 0 0 / 34px 34px,#0f1424;border-color:#0f1424}.sticker{position:absolute;left:0;top:0;padding:10px 18px;border-radius:999px;font:800 clamp(15px,1.6vw,19px)/1.2 var(--f-body);border:2px solid #17140f;background:var(--c, #fbf8f2);color:#17140f;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:none;white-space:nowrap;box-shadow:inset 0 -3px #0000001f;will-change:transform;transform:translate(-999px,-999px)}.sticker.trait{display:grid;place-items:center;text-align:center;width:5.6em;height:5.6em;padding:0 .5em;border-radius:50%;white-space:normal;font-size:clamp(13px,1.3vw,15px);line-height:1.25;border-style:dashed}.sticker.ball{width:64px;height:64px;padding:0;border-radius:50%;border:0;background:transparent;box-shadow:none;color:var(--ink);font-size:112px;display:grid;place-items:center}.desk.space .sticker.ball{color:#efe9dc}.sticker.ball .mini-o{margin:0}.sticker.drag{cursor:grabbing;filter:drop-shadow(0 10px 8px rgba(0,0,0,.25));z-index:5}.desk.static{height:auto;padding:18px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.desk.static .sticker{position:static;transform:none}.desk-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}.tool{padding:7px 14px;border-radius:999px;cursor:pointer;border:1.5px solid var(--ink);background:var(--card);font-size:14px;font-weight:700;transition:transform .3s var(--ease-spring),background-color .2s,color .2s}.tool:hover{transform:translateY(-2px) rotate(-2deg)}.tool[aria-pressed=true]{background:var(--ink);color:var(--paper)}.desk-hint{margin:0 0 0 auto;font-size:12px;color:var(--ink-2)}.sticker.guest{font-family:"Dabo Hand","LXGW WenKai TC",var(--f-body);font-weight:400;border-radius:4px;border-style:solid;box-shadow:2px 3px #0000002e;padding:10px 16px}.sticker.guest:before{content:"";position:absolute;left:50%;top:-7px;width:34px;height:12px;translate:-50% 0;background:#ffe14dbf;rotate:-4deg}.guest-bubble{display:inline-flex;align-items:center;gap:8px;padding:0;border:0;background:none;cursor:pointer;color:var(--ink);margin-left:4px}.gb-o{font-size:40px;flex:none;transition:transform .4s var(--ease-spring)}.gb-text{position:relative;padding:7px 14px;border-radius:14px 14px 14px 4px;background:var(--card);border:1.5px solid var(--ink);font-weight:700;font-size:14px;white-space:nowrap;box-shadow:3px 3px 0 var(--hl);transform-origin:0 100%;opacity:0;transform:translate(-18px) scale(.2);pointer-events:none;transition:opacity .25s,transform .55s var(--ease-spring),box-shadow .3s,background-color .2s,color .2s}.guest-bubble.talk .gb-text{opacity:1;transform:none;pointer-events:auto;animation:nudge 3.2s 1.2s ease-in-out infinite}.guest-bubble.talk .gb-o{animation:hop .7s var(--ease-spring)}.guest-bubble:hover .gb-text{box-shadow:5px 5px 0 var(--hl);animation:none}.guest-bubble:hover .gb-o{transform:rotate(-12deg)}.guest-bubble.on .gb-text{animation:none;background:var(--ink);color:var(--paper)}@keyframes nudge{0%,80%,to{transform:none}85%{transform:rotate(-2deg) translateY(-2px)}90%{transform:rotate(2deg)}95%{transform:rotate(-1deg)}}.guest[hidden]{display:none}.guest{margin-top:12px;animation:fadeIn .4s var(--ease-out);padding:16px 18px;border:1.5px dashed var(--line);border-radius:16px}.guest label{display:block;margin-bottom:10px;font-weight:900;font-size:16px}.guest-row{display:flex;flex-wrap:wrap;gap:8px}.guest input{flex:1 1 160px;min-width:0;padding:9px 14px;border-radius:999px;border:1.5px solid var(--ink);background:var(--card);color:var(--ink);font:inherit;font-size:15px}.guest input#guestWord{flex-basis:220px;font-family:"Dabo Hand","LXGW WenKai TC",var(--f-body);font-size:17px}.guest input:focus-visible{outline:2.5px solid var(--accent);outline-offset:1px}.guest-send{flex:none;background:var(--ink);color:var(--paper)}.guest-send:disabled{opacity:.6}.guest-note{margin:8px 0 0;font-size:13px;color:var(--ink-2)}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.card{--tc: var(--accent);position:relative;display:flex;flex-direction:column;padding:0;overflow:hidden;background:var(--card);border:1.5px solid var(--ink);border-radius:20px;text-align:left;cursor:pointer;transition:transform .35s var(--ease-spring),box-shadow .35s var(--ease-out),background-color .6s,border-color .6s;transform:perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg))}.card[data-type=app],.card[data-type=code],.card[data-type=web]{--tc: var(--green)}.card[data-type=community]{--tc: var(--pink)}.card:hover,.card:focus-visible{transform:perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translate(-4px,-4px);box-shadow:8px 8px 0 var(--tc)}.card-cover{position:relative;display:block;aspect-ratio:16 / 9;overflow:hidden;background:var(--paper-2);border-bottom:1.5px solid var(--ink)}.card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}.card:hover .card-cover img{transform:scale(1.05)}.card-count{position:absolute;right:10px;bottom:10px;padding:3px 9px;border-radius:999px;background:#0f0c08b8;color:#fff;font:500 12px var(--f-mono)}.card-text{flex:1;display:flex;flex-direction:column;padding:18px 20px}.card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}.chip{display:inline-flex;align-items:center;gap:6px;font:500 11px/1 var(--f-mono);text-transform:uppercase;letter-spacing:.08em;padding:5px 8px;border-radius:6px;background:var(--tc);color:#17140f}.card-year{font-family:var(--f-mono);color:var(--ink-2)}.card h3{margin:14px 0 4px;font:900 clamp(19px,2vw,24px)/1.35 var(--f-body)}.card-role{margin:0;font-size:14px;color:var(--ink-2)}.card-stat{margin:14px 0 0;display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px}.card-stat b{font:800 clamp(26px,3vw,36px)/1 var(--f-display);letter-spacing:-.03em;color:var(--accent)}.card-stat span{font-size:13px;color:var(--ink-2)}.card-foot{margin-top:auto;padding-top:16px;display:flex;justify-content:flex-end}.card-go{flex:none;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:17px;line-height:1;border:1.5px solid var(--ink);transition:transform .4s var(--ease-spring),background-color .3s,color .3s}.card:hover .card-go{background:var(--ink);color:var(--paper);transform:rotate(45deg)}.card.feat{grid-column:1 / -1;flex-direction:row}.card.feat .card-cover{flex:0 0 58%;aspect-ratio:auto;min-height:320px;border-bottom:0;border-right:1.5px solid var(--ink)}.card.feat .card-text{padding:26px 28px 22px}.card.feat h3{font-size:clamp(24px,2.8vw,34px)}.card.feat .card-stat b{font-size:clamp(34px,4.4vw,56px)}.card.no-cover .card-text{padding-top:22px}.card.no-cover:before{content:"";display:block;height:10px;background:repeating-linear-gradient(-45deg,var(--tc) 0 10px,transparent 10px 20px);border-bottom:1.5px solid var(--ink)}.codebox{margin-top:44px}.sub-h{display:flex;align-items:center;gap:10px;margin:0 0 16px;font:900 20px/1.3 var(--f-body)}.sub-h .mono{font-size:14px;padding:4px 8px;border-radius:6px;background:var(--ink);color:var(--paper)}.codecards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:18px;align-items:start}.ccard{--tc: var(--green);display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:left;background:var(--card);border:1.5px solid var(--ink);border-radius:16px;cursor:pointer;transition:transform .35s var(--ease-spring),box-shadow .35s var(--ease-out),background-color .6s;transform:perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg))}.ccard:hover,.ccard:focus-visible{transform:perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translate(-3px,-3px);box-shadow:6px 6px 0 var(--tc)}.ccard.soon{cursor:default}.ccard.soon:hover{transform:none;box-shadow:none}.cc-frame{display:block;border-bottom:1.5px solid var(--ink);background:var(--paper-2)}.cc-bar{display:flex;align-items:center;gap:5px;padding:7px 10px;border-bottom:1px solid var(--line)}.cc-bar i{width:8px;height:8px;border-radius:50%;border:1px solid var(--ink)}.cc-bar i:nth-child(1){background:var(--accent)}.cc-bar i:nth-child(2){background:var(--hl)}.cc-bar i:nth-child(3){background:var(--green)}.cc-url{flex:1;min-width:0;margin-left:6px;padding:2px 8px;border-radius:5px;background:var(--card);font:11px var(--f-mono);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-shot{display:block;aspect-ratio:16 / 10;overflow:hidden}.cc-shot img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .8s var(--ease-out)}.ccard:hover .cc-shot img{transform:scale(1.04)}.cc-empty{display:grid;place-items:center;width:100%;height:100%;font:500 13px var(--f-mono);color:var(--ink-2);background:repeating-linear-gradient(-45deg,transparent 0 10px,var(--line) 10px 11px)}.cc-empty.big{aspect-ratio:16 / 10}.cc-text{display:flex;flex-direction:column;gap:4px;padding:14px 16px 16px}.cc-title{margin-top:8px;font-size:17px;line-height:1.4}.cc-stat{margin-top:6px;font-size:13px;color:var(--ink-2)}.cc-stat b{font:800 22px/1 var(--f-display);color:var(--green);letter-spacing:-.02em}.cc-link{margin-top:8px;font-size:12px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ccard:hover .cc-link{color:var(--accent)}a.ccard{text-decoration:none;color:inherit}.ccard.no-shot{border-style:solid}.ccard.no-shot:before{content:"";display:block;height:8px;background:repeating-linear-gradient(-45deg,var(--tc) 0 8px,transparent 8px 16px);border-bottom:1.5px solid var(--ink)}.sh-cover{border:1.5px solid var(--ink);border-radius:12px;overflow:hidden;background:var(--paper-2)}.sh-cover img{width:100%;aspect-ratio:16 / 9;object-fit:cover}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:20px 0 0;border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--line)}.metrics div{padding:14px 12px 12px 0}.metrics div+div{padding-left:14px;border-left:1.5px solid var(--line)}.metrics b{display:block;overflow-wrap:anywhere;font:800 clamp(22px,3vw,30px)/1.15 var(--f-display);letter-spacing:-.02em;color:var(--accent)}.metrics span{font-size:13px;color:var(--ink-2)}.tickets{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,480px),1fr));gap:14px}.ticket{--notch: 12px;--stub: 92px;position:relative;width:100%;display:grid;grid-template-columns:92px 1fr;align-items:stretch;padding:0;text-align:left;border:0;border-radius:14px;background:radial-gradient(circle at 92px 0,transparent var(--notch),var(--card) calc(var(--notch) + .5px)) top / 100% 51% no-repeat,radial-gradient(circle at 92px 100%,transparent var(--notch),var(--card) calc(var(--notch) + .5px)) bottom / 100% 51% no-repeat;filter:drop-shadow(0 0 .8px var(--ink)) drop-shadow(0 3px 0 var(--line));transition:transform .35s var(--ease-spring)}button.ticket{cursor:pointer}button.ticket:hover,button.ticket:focus-visible{transform:translateY(-3px) rotate(-.4deg)}.t-stub{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:14px 6px;border-right:2px dashed var(--line);font-family:var(--f-display)}.t-stub b{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1}.t-stub small{font:500 10px var(--f-mono);color:var(--ink-2);margin-top:4px;letter-spacing:.12em}.t-main{position:relative;padding:16px 112px 16px 18px;display:flex;flex-direction:column;justify-content:center;min-height:86px}.t-main h3{margin:0;font:700 16px/1.45 var(--f-body)}.t-main .t-more{font:500 11px var(--f-mono);color:var(--accent);margin-top:4px;letter-spacing:.06em}.stamp{position:absolute;right:14px;top:50%;translate:0 -50%;rotate:-9deg;padding:4px 9px;border:2px solid var(--accent);border-radius:6px;color:var(--accent);font:900 14px/1.2 var(--f-body);letter-spacing:.1em;white-space:nowrap;text-align:center;mix-blend-mode:normal;opacity:.9;transition:transform .3s var(--ease-spring)}.stamp.big{border-width:3px;font-size:15px}button.ticket:hover .stamp{transform:scale(1.15) rotate(-4deg)}.ticket.pop .stamp{animation:stampIn .5s var(--ease-spring) both;animation-delay:var(--d, 0ms)}@keyframes stampIn{0%{transform:scale(2.2);opacity:0}60%{transform:scale(.92);opacity:1}}@keyframes stampAgain{0%{transform:scale(2.2);opacity:0}60%{transform:scale(.92);opacity:1}}.ticket{cursor:pointer}.ticket:hover,.ticket:focus-visible{transform:translateY(-3px) rotate(-.5deg)}.ticket:hover .stamp{transform:scale(1.12) rotate(-4deg)}.ticket:active{transform:translateY(0) scale(.99)}.ticket.thunk{animation:thunk .35s var(--ease-spring)}.ticket.thunk .stamp{animation:stampAgain .45s var(--ease-spring)}@keyframes thunk{30%{transform:translateY(2px) scale(.985)}}.t-place{font-size:12px;color:var(--ink-2);margin-top:2px}a.ticket{text-decoration:none;color:inherit}@media(hover:none){.ticket:not(.ticket-etc){filter:none;overflow:hidden;background:var(--card);box-shadow:inset 0 0 0 1px var(--ink),0 3px 0 var(--line)}.ticket:not(.ticket-etc):before,.ticket:not(.ticket-etc):after{content:"";position:absolute;left:calc(var(--stub) - var(--notch));width:calc(var(--notch) * 2);height:calc(var(--notch) * 2);border-radius:50%;background:var(--paper);box-shadow:inset 0 0 0 1px var(--ink);pointer-events:none}.ticket:not(.ticket-etc):before{top:calc(var(--notch) * -1)}.ticket:not(.ticket-etc):after{bottom:calc(var(--notch) * -1)}}.ticket-etc{--notch: 12px;filter:none!important;border:2px dashed var(--line);background:transparent!important}.ticket-etc .t-stub b,.ticket-etc h3{color:var(--ink-2)}.hole{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:var(--paper);box-shadow:inset 0 1px 2px #00000059;animation:holeIn .25s var(--ease-spring);pointer-events:none}@keyframes holeIn{0%{transform:scale(0)}}.chad{position:fixed;z-index:150;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--card);border:1px solid var(--line);pointer-events:none;animation:chad .9s cubic-bezier(.3,.6,.6,1) forwards}@keyframes chad{to{transform:translate(var(--dx),140px) rotate(260deg) scale(.7);opacity:0}}.more-btn{display:block;margin:22px auto 0;padding:12px 22px;cursor:pointer;border:1.5px dashed var(--ink);border-radius:999px;background:transparent;font-size:15px;font-weight:700;transition:transform .3s var(--ease-spring),background-color .2s,color .2s}.more-btn[hidden]{display:none}.more-btn:hover{background:var(--ink);color:var(--paper);transform:rotate(-1.5deg)}.spot-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:start}.spot-box{border:1.5px solid var(--ink);border-radius:20px;background:var(--card);padding:22px 22px 14px;transition:background-color .6s}.spot-h{display:flex;align-items:center;gap:10px;margin:0 0 12px;font:900 18px/1.3 var(--f-body)}.medals{list-style:none;margin:0;padding:0}.medals li+li{border-top:1px dashed var(--line)}.aw{display:flex;align-items:center;gap:14px;padding:12px 0;text-decoration:none}.medal{flex:none;width:50px;height:50px;perspective:400px}.medal-face{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s var(--ease-spring)}.medal-front,.medal-back{position:absolute;inset:0;display:grid;place-items:center;border-radius:50%;backface-visibility:hidden;background:radial-gradient(circle at 35% 30%,#fff3b0,#ffcf1f 45%,#d9a300);border:2px solid #17140f;color:#17140f;box-shadow:inset 0 0 0 4px #ffffff73;font:800 17px/1 var(--f-display)}.medal-back{transform:rotateY(180deg);font-size:20px}.aw:hover .medal-face{transform:rotateY(180deg)}.medal:after{content:""}.aw-text{display:flex;flex-direction:column;min-width:0}.aw-text b{font-size:16px;line-height:1.45}.aw-text small{font-size:13px;color:var(--ink-2);margin-top:2px}a.aw:hover b{color:var(--accent)}.onair-light{font:500 11px/1 var(--f-mono);letter-spacing:.12em;color:#fff;background:#e5261f;padding:5px 7px;border-radius:4px;animation:onair 2.4s steps(1) infinite}@keyframes onair{0%,70%{opacity:1;box-shadow:0 0 12px #e5261fb3}71%,to{opacity:.45;box-shadow:none}}.onair{list-style:none;margin:0;padding:0}.onair li+li{border-top:1px dashed var(--line)}.oa{display:flex;align-items:flex-start;gap:12px;padding:12px 0;text-decoration:none}.oa-lab{flex:none;font:500 11px/1 var(--f-mono);padding:6px 8px;border-radius:999px;border:1.5px solid var(--ink);white-space:nowrap;margin-top:2px}.oa-lab.iv{background:var(--hl);color:#17140f;border-color:#17140f}.oa-text{display:flex;flex-direction:column;min-width:0}.oa-text b{font-size:16px;line-height:1.45}.oa-text small{font-size:13px;color:var(--ink-2);margin-top:2px}.oa:hover .oa-lab{transform:rotate(-6deg)}.oa-lab{transition:transform .3s var(--ease-spring)}.press{margin-top:30px}.clips{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px 16px;padding:6px 4px 10px}.clip{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px 16px 14px;min-height:150px;text-decoration:none;background:#f7f1e3;color:#221d15;font-family:"Dabo Serif","Noto Serif TC",serif;clip-path:polygon(0 3%,6% 0,14% 2%,24% 0,36% 3%,48% 0,60% 2%,72% 0,84% 3%,94% 0,100% 2%,99% 30%,100% 62%,98% 100%,86% 97%,72% 100%,58% 97%,44% 100%,30% 97%,16% 100%,4% 97%,1% 70%,0 40%);transition:transform .4s var(--ease-spring)}.clip{will-change:transform}.clip.r0{rotate:-2deg}.clip.r1{rotate:1.5deg}.clip.r2{rotate:-.8deg}.clip.r3{rotate:2.2deg}.clip:hover{transform:rotate(0) translateY(-4px) scale(1.03);rotate:0deg}.clip-mast{font-weight:900;font-size:19px;line-height:1.3;letter-spacing:.04em}.clip-rule{height:3px;border-top:2px solid #221d15;border-bottom:1px solid #221d15}.clip-note{font-weight:700;font-size:14px;line-height:1.5}.clip-lines{display:grid;gap:5px;margin-top:auto}.clip-lines i{height:4px;background:#221d1529;border-radius:2px}.clip-lines i:nth-child(2){width:86%}.clip-lines i:nth-child(3){width:60%}.clip-tag{align-self:flex-start;margin-top:8px;font:500 11px/1.4 var(--f-mono);color:#8a7f6c;letter-spacing:.02em}.clip-tag:before{content:"# ";opacity:.7}.clip-date{position:absolute;right:12px;top:14px;font:500 11px var(--f-mono);color:#6b6253}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}.filter{--tc: var(--ink);padding:6px 14px;border-radius:999px;cursor:pointer;border:1.5px solid var(--ink);background:transparent;font-size:14px;font-weight:500;transition:background-color .2s,color .2s,transform .3s var(--ease-spring)}.filter:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--tc);margin-right:8px;vertical-align:1px}.filter[data-tag=all]:before{display:none}.filter:hover{transform:translateY(-2px)}.filter[aria-pressed=true]{background:var(--ink);color:var(--paper)}.filter sup{font:500 10px var(--f-mono);margin-left:3px;opacity:.6}.year{display:grid;grid-template-columns:minmax(90px,180px) 1fr;gap:0 clamp(16px,4vw,48px);border-top:1.5px solid var(--ink);padding:18px 0 30px}.year[hidden]{display:none}.year-no{position:sticky;top:90px;align-self:start;margin:0;font:800 clamp(40px,6vw,72px)/.9 var(--f-display);letter-spacing:-.04em}.year ul{list-style:none;margin:0;padding:0}.item{padding:10px 0;border-bottom:1px solid var(--line);animation:fadeIn .45s var(--ease-out) both}.item:last-child{border-bottom:0}.item-row{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline}.item-title{font-weight:700;font-size:17px}.item-role{color:var(--ink-2);font-size:15px}.item-role:before{content:"\2014  "}.item .tag{margin-left:auto;font:500 11px var(--f-mono);padding:3px 8px;border-radius:999px;border:1.5px solid var(--tc);color:var(--ink);white-space:nowrap}.item-a{text-decoration:none;color:inherit;display:block}.item-link{color:var(--accent);font-family:var(--f-mono);font-weight:500;transition:transform .3s var(--ease-spring);display:inline-block}.item-a:hover .item-title{color:var(--accent)}.item-a:hover .item-link{transform:translate(2px,-2px)}.item .when{font:500 11px var(--f-mono);color:var(--ink-2);width:100%}.item details summary{cursor:pointer;list-style:none}.item details summary::-webkit-details-marker{display:none}.item details summary .item-title:after{content:" +";color:var(--accent);font-family:var(--f-mono)}.item details[open] summary .item-title:after{content:" \2212"}.item details .md{font-size:15px;color:var(--ink-2);padding:6px 0 4px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}}.postcard{position:relative;display:grid;grid-template-columns:1.1fr 1fr;max-width:980px;min-height:360px;padding:clamp(28px,4.4vw,52px);background:var(--card);border:1.5px solid var(--ink);border-radius:8px;box-shadow:0 30px 50px -30px #0006;transition:transform .9s var(--ease-out),background-color .6s;backface-visibility:hidden;-webkit-backface-visibility:hidden}.pc-flip{display:grid;max-width:980px;perspective:1800px;rotate:-1.2deg;transition:rotate .6s var(--ease-spring)}.pc-flip:hover{rotate:0deg}.pc-flip>.postcard{grid-area:1 / 1}.pc-back{transform:rotateY(180deg);visibility:hidden}.pc-flip>.postcard{transition:transform .8s cubic-bezier(.45,0,.55,1),visibility 0s .4s,background-color .6s}.pc-flip .pc-stamp,.pc-flip .pc-mark{backface-visibility:hidden;-webkit-backface-visibility:hidden}.pc-flip.flipped .pc-front{visibility:hidden}.pc-flip.flipped .pc-back{visibility:visible}.pc-flip.flipped .pc-front{transform:rotateY(-180deg)}.pc-flip.flipped .pc-back{transform:rotateY(0)}.pc-mark.special b{font-size:26px;line-height:1}.pc-mark.special small{font-size:9px;letter-spacing:.02em;text-align:center;max-width:78px;line-height:1.25}.pc-mark.special{border-style:dashed}.pc-flip.posted .pc-back .pc-mark{animation:postmark .5s var(--ease-spring);opacity:1;border-color:var(--accent);color:var(--accent)}.pc-flip.posted .pc-back{animation:sent .8s var(--ease-out)}.postcard:before{content:"";position:absolute;inset:8px;pointer-events:none;border-radius:4px;border:5px solid transparent;border-image:repeating-linear-gradient(-45deg,var(--accent) 0 12px,transparent 12px 20px,var(--blue) 20px 32px,transparent 32px 40px) 6;opacity:.9}.postcard>*,.pc-lines li{min-width:0}.pc-msg{display:flex;flex-direction:column;justify-content:center;padding-right:clamp(18px,3.4vw,44px);border-right:1.5px solid var(--line)}.pc-hand{margin:0;font:400 clamp(18px,2.1vw,24px)/1.7 "Dabo Hand","LXGW WenKai TC",var(--f-body)}.pc-sign{margin:34px 0 0;text-align:right;font:400 clamp(20px,2.1vw,24px)/1 "Dabo Hand","LXGW WenKai TC",var(--f-body);color:var(--accent);rotate:-4deg}.pc-side{display:flex;flex-direction:column;padding-left:clamp(18px,3.4vw,44px)}.pc-top{position:relative;display:flex;justify-content:flex-end;align-items:flex-start;min-height:128px;margin-bottom:18px}.pc-stamp{--h: 5px;width:104px;height:124px;padding:var(--h);background:#fffaf0;display:flex;flex-direction:column;rotate:4deg;filter:drop-shadow(0 2px 2px rgba(0,0,0,.18));-webkit-mask:linear-gradient(#000 0 0) content-box,radial-gradient(circle,#0000 3.2px,#000 3.6px) calc(var(--h) * -1) calc(var(--h) * -1) / 10px 10px;mask:linear-gradient(#000 0 0) content-box,radial-gradient(circle,#0000 3.2px,#000 3.6px) calc(var(--h) * -1) calc(var(--h) * -1) / 10px 10px;transition:rotate .5s var(--ease-spring)}.postcard:hover .pc-stamp{rotate:-2deg}.pc-stamp-face{flex:1;display:grid;place-items:center;background:var(--hl);margin:3px 3px 0;color:#17140f}.pc-stamp .mini-o{font-size:76px;margin:0}.pc-stamp-v{font:500 9px/1 var(--f-mono);letter-spacing:.12em;color:#17140f;text-align:center;padding:6px 0 4px}.pc-mark{position:absolute;right:70px;top:26px;width:92px;height:92px;border-radius:50%;border:2px solid var(--ink-2);color:var(--ink-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;rotate:-16deg;opacity:.7;z-index:1;font-family:var(--f-mono)}.pc-mark b{font-size:18px;font-weight:500}.pc-mark small{font-size:8.5px;letter-spacing:.14em}.pc-mark:before{content:"";position:absolute;right:86px;top:30px;width:90px;height:32px;background:repeating-linear-gradient(to bottom,var(--ink-2) 0 2px,transparent 2px 10px);-webkit-mask:linear-gradient(to left,#000,transparent);mask:linear-gradient(to left,#000,transparent)}.pc-lines{list-style:none;margin:auto 0 0;padding:0}.pc-lines li{display:flex;align-items:center;gap:12px;border-bottom:1.5px solid var(--line)}.pc-lines li:first-child{border-top:1.5px solid var(--line)}.pc-lines .k{flex:none;width:78px;font:500 11px var(--f-mono);letter-spacing:.08em;color:var(--ink-2);text-transform:uppercase}.pc-lines a{flex:1;min-width:0;padding:13px 0;display:flex;align-items:center;justify-content:space-between;gap:8px;font-weight:700;font-size:16px;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .2s,padding .35s var(--ease-out)}.pc-lines a:after{content:"\2197";font-weight:400;color:var(--ink-2);transition:transform .35s var(--ease-spring),color .2s}.pc-lines a:hover{color:var(--accent);padding-left:6px}.pc-lines a:hover:after{color:var(--accent);transform:translate(2px,-2px)}.pc-copy{flex:none;padding:4px 10px;border-radius:999px;cursor:pointer;border:1.5px solid var(--ink);background:transparent;font:500 12px var(--f-body);transition:background-color .2s,color .2s}.pc-copy:hover{background:var(--ink);color:var(--paper)}.pc-hand p{margin:0}.pc-hand p+p{margin-top:.6em}.pc-form{margin:0 0 18px;padding:0;border:0;min-width:0}.pc-form legend{padding:0;margin-bottom:10px;font-weight:900;font-size:16px}.pc-form legend small{font-weight:400;font-size:12px;color:var(--ink-2)}.pc-opts{display:flex;flex-wrap:wrap;gap:8px}.pc-opts.nudge{animation:deskShake .45s ease}.opt{position:relative;cursor:pointer}.opt input{position:absolute;opacity:0;pointer-events:none}.opt span{display:inline-block;padding:7px 13px;border-radius:999px;border:1.5px solid var(--ink);font-size:14px;font-weight:700;transition:background-color .2s,color .2s,transform .3s var(--ease-spring)}.opt:hover span{transform:translateY(-2px)}.opt input:checked+span{background:var(--ink);color:var(--paper);transform:rotate(-2deg)}.opt input:focus-visible+span{outline:2.5px solid var(--accent);outline-offset:2px}.pc-send{margin-top:14px;padding:11px 20px;cursor:pointer;border:1.5px solid var(--ink);border-radius:999px;background:var(--accent);color:#fff;font-size:15px;font-weight:900;box-shadow:3px 3px 0 var(--ink);transition:transform .3s var(--ease-spring),box-shadow .3s}.pc-send:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink)}.pc-send:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--ink)}@keyframes sent{40%{transform:translateY(-12px) rotate(1.5deg)}}.pc-write{display:flex;flex-direction:column;padding-right:clamp(18px,3.4vw,44px);border-right:1.5px solid var(--line)}.pc-to{margin:0 0 14px;font:400 clamp(18px,2.1vw,23px)/1.4 "Dabo Hand","LXGW WenKai TC",var(--f-body)}.pc-to span{font-size:.62em;color:var(--ink-2)}.pc-to span:before{content:"\3000\b7\3000"}.pc-field{display:flex;flex-direction:column;gap:6px}.pc-field>span{font:500 11px var(--f-mono);letter-spacing:.08em;color:var(--ink-2)}.pc-write .pc-field{flex:1}.pc-field textarea,.pc-field input{width:100%;border:0;outline:0;color:var(--ink);background:transparent;font:400 19px/2.1 "Dabo Hand","LXGW WenKai TC",var(--f-body)}.pc-field textarea{flex:1;min-height:12.6em;resize:vertical;padding:0 2px;background:repeating-linear-gradient(transparent 0 calc(2.1em - 1px),var(--line) calc(2.1em - 1px) 2.1em);background-attachment:local}.pc-field textarea::placeholder,.pc-field input::placeholder{color:var(--ink-2);opacity:.55}.pc-field.line{margin-bottom:12px}.pc-field.line input{border-bottom:1.5px solid var(--line);font-size:17px;line-height:1.8}.pc-field textarea:focus-visible,.pc-field.line input:focus-visible{outline:0}.pc-field.line:focus-within input{border-bottom-color:var(--accent)}.pc-write .pc-field:focus-within textarea{background-image:repeating-linear-gradient(transparent 0 calc(2.1em - 1px),color-mix(in srgb,var(--accent) 45%,transparent) calc(2.1em - 1px) 2.1em)}.pc-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}.pc-status{min-height:1.4em;margin:2px 0 10px;font-size:14px;font-weight:700}.pc-status.err{color:var(--accent)}.pc-status.ok{color:var(--green)}.pc-status a{color:inherit}.pc-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-top:auto}.pc-actions .pc-send{margin-top:0}.pc-send:disabled{opacity:.6;cursor:progress}.pc-flipback{padding:8px 4px;border:0;background:none;cursor:pointer;font-size:14px;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}.pc-flipback:hover{color:var(--ink)}@keyframes postmark{0%{transform:scale(1.8);opacity:0}to{transform:scale(1)}}.pc-lines a{padding:10px 0;font-size:15px}.foot{max-width:var(--maxw);margin:0 auto;padding:60px var(--gutter) 40px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:12px;color:var(--ink-2)}.foot p{margin:0}.foot-eggs{display:flex;gap:14px}.foot-eggs a{text-decoration:none;opacity:.7}.foot-eggs a:hover{opacity:1;color:var(--accent)}.linkish{background:none;border:1px solid var(--line);border-radius:50%;width:22px;height:22px;padding:0;cursor:pointer;font:inherit;line-height:1}.sheet{width:min(760px,calc(100vw - 32px));max-height:min(88vh,900px);padding:0;border:2px solid var(--ink);border-radius:22px;background:var(--paper);color:var(--ink);box-shadow:10px 10px 0 var(--shadow);overflow:hidden}.sheet[open]{animation:sheetIn .5s var(--ease-spring)}.sheet::backdrop{background:#0a08058c;animation:fadeOnly .3s ease}.sheet.closing{animation:sheetOut .22s ease-in forwards}.sheet.closing::backdrop{animation:fadeOnly .22s ease reverse forwards}@keyframes sheetIn{0%{opacity:0;transform:translateY(40px) rotate(1.5deg) scale(.97)}}@keyframes sheetOut{to{opacity:0;transform:translateY(24px) scale(.98)}}@keyframes fadeOnly{0%{opacity:0}}.sheet-inner{max-height:inherit;overflow-y:auto;padding:clamp(22px,4vw,40px);overscroll-behavior:contain}.sheet-close{position:sticky;top:0;float:right;margin:-6px -6px 0 12px;z-index:2;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--ink);background:var(--paper);cursor:pointer;font-size:16px;transition:transform .35s var(--ease-spring),background-color .2s}.sheet-close:hover{transform:rotate(90deg);background:var(--hl);color:#17140f}.sh-top{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sh-title{margin:14px 0 6px;font:900 clamp(26px,4.4vw,42px)/1.2 var(--f-body)}.sh-meta{margin:0 0 22px;color:var(--ink-2);font-size:15px}.sh-meta b{color:var(--ink)}.sh-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;border:1.5px solid var(--ink);font-weight:700;font-size:15px;text-decoration:none;transition:transform .3s var(--ease-spring),box-shadow .3s}.btn.primary{background:var(--ink);color:var(--paper)}.btn:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--accent)}.browser{border:1.5px solid var(--ink);border-radius:12px;overflow:hidden;background:var(--card)}.browser-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;border-bottom:1.5px solid var(--ink);background:var(--paper-2)}.browser-bar i{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--ink)}.browser-bar i:nth-child(1){background:var(--accent)}.browser-bar i:nth-child(2){background:var(--hl)}.browser-bar i:nth-child(3){background:var(--green)}.browser-bar span{flex:1;margin-left:8px;padding:3px 10px;border-radius:6px;background:var(--card);font:12px var(--f-mono);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.browser img{width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:top}.term{border-radius:12px;background:#14120e;color:#e9e3d6;padding:16px 18px;font:13.5px/1.8 var(--f-mono);overflow-x:auto;border:1.5px solid var(--ink)}.term .c{color:#8a8474}.term .p{color:#ff6a3d}.term .g{color:#4fd08e}.term a{color:#ffd23f}.term img{margin-top:12px;border-radius:8px;border:1px solid #333;max-height:360px;width:100%;object-fit:cover;object-position:top}.caution{padding:12px;border-radius:14px;background:repeating-linear-gradient(-45deg,var(--hl) 0 16px,#17140f 16px 32px)}.caution>div{background:var(--card);border-radius:8px;overflow:hidden}.caution img{width:100%;aspect-ratio:16 / 10;object-fit:cover;object-position:top}.caution p{margin:0;padding:10px 14px;font:700 14px var(--f-body)}.bigticket{display:grid;grid-template-columns:auto 1fr;border:2px solid var(--ink);border-radius:16px;overflow:hidden;background:var(--card)}.bigticket .t-stub{padding:18px 22px;background:var(--accent);color:var(--accent-ink);border-right:2px dashed var(--ink)}.bigticket .t-stub small{color:inherit;opacity:.8}.bigticket .bt-main{position:relative;padding:18px 22px;min-height:110px}.bigticket dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px}.bigticket dt{font:500 11px/2 var(--f-mono);color:var(--ink-2);letter-spacing:.1em}.bigticket dd{margin:0;font-weight:700}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:18px}.gallery img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:10px;border:1.5px solid var(--ink)}.stack{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.stack span{font:500 12px var(--f-mono);padding:4px 10px;border:1.5px solid var(--ink);border-radius:999px}.md{margin-top:24px}.md>:first-child{margin-top:0}.md p,.md li{font-size:16px}.md a{color:var(--accent);text-underline-offset:3px}.md ul{padding-left:1.2em}.md li::marker{color:var(--accent);content:"\273a   "}.md blockquote{margin:18px 0;padding:12px 18px;border-left:4px solid var(--accent);background:var(--paper-2);border-radius:0 10px 10px 0}.md blockquote p{margin:0}.md img{border-radius:10px;border:1.5px solid var(--ink);margin:14px 0}.md h2,.md h3{font-weight:900;margin:28px 0 8px}.md code{font-family:var(--f-mono);background:var(--paper-2);padding:1px 6px;border-radius:4px;font-size:.9em}.slider{position:relative;border:1.5px solid var(--ink);border-radius:12px;overflow:hidden;background:#000}.slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.slides::-webkit-scrollbar{display:none}.slide{flex:0 0 100%;scroll-snap-align:start;aspect-ratio:16 / 9;display:grid;place-items:center;background:#111}.slide img{width:100%;height:100%;object-fit:cover}.slide iframe{width:100%;height:100%;border:0}.sl-btn{position:absolute;top:50%;translate:0 -50%;width:40px;height:40px;border-radius:50%;cursor:pointer;border:1.5px solid #17140f;background:#fbf8f2eb;color:#17140f;font-size:16px;transition:opacity .2s,transform .3s var(--ease-spring)}.sl-btn:hover{transform:scale(1.08)}.sl-btn.prev{left:10px}.sl-btn.next{right:10px}.slider[data-at=start] .prev,.slider[data-at=end] .next{opacity:0;pointer-events:none}.sl-dots{position:absolute;left:50%;bottom:10px;translate:-50% 0;display:flex;gap:6px;padding:5px 8px;border-radius:999px;background:#0f0c088c}.sl-dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#ffffff80;cursor:pointer;font-size:0}.sl-dots button[aria-current=true]{background:#fff;width:20px;border-radius:5px}.bigticket+.slider{margin-top:16px}.toast{position:fixed;z-index:200;left:50%;bottom:max(22px,env(safe-area-inset-bottom));translate:-50% 140%;opacity:0;max-width:calc(100vw - 32px);background:var(--ink);color:var(--paper);padding:12px 20px;border-radius:16px;font-size:15px;font-weight:500;text-align:center;box-shadow:5px 5px 0 var(--accent);transition:translate .5s var(--ease-spring),opacity .3s;pointer-events:none}.toast.show{translate:-50% 0;opacity:1}.noscript{max-width:640px;margin:20vh auto;padding:0 20px}@media(max-width:860px){.card.feat{flex-direction:column}.card.feat .card-cover{flex:none;min-height:0;aspect-ratio:16 / 9;border-right:0;border-bottom:1.5px solid var(--ink)}.spot-grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}.stats div:nth-child(3){padding-left:0;border-left:0}.postcard{grid-template-columns:1fr}.pc-msg,.pc-write{padding:0 0 26px;border-right:0;border-bottom:1.5px dashed var(--line)}.pc-side{padding:26px 0 0}}@media(max-width:640px){body{font-size:16px}.topbar{padding:12px 58px 12px var(--gutter)}.nav{font-size:12.5px;gap:0;padding:3px}.nav a{padding:6px 7px;white-space:nowrap}.mark{width:40px;height:40px;font-size:58px}.lamp{right:10px;height:88px}.hero{min-height:88svh;padding-top:96px;justify-content:center}.hero-hi{font-size:21px}.hero-name{font-size:clamp(4.8rem,27vw,8rem)}.hero-id{gap:10px}.seal{font-size:15px;margin-bottom:4px}.motto{margin-top:30px;font-size:clamp(22px,7vw,30px)}.status{font-size:13px}.slashes{font-size:15px;margin-top:14px;row-gap:8px}.hero-down{margin-top:48px}.sec{padding-top:96px}.about-grid{grid-template-columns:1fr;gap:34px}.me{width:190px;margin-left:6px}.stats dd{font-size:34px}.desk{height:420px}.desk-hint{width:100%;margin:4px 0 0}.desk-tools{flex-wrap:wrap;gap:6px}.tool .tl{display:none}.tool{padding:7px 11px}.guest-bubble{margin-left:0;gap:5px}.gb-o{font-size:34px}.gb-text{font-size:12.5px;padding:6px 10px}.cards{grid-template-columns:1fr}.codecards{grid-template-columns:1fr 1fr;gap:12px}.cc-text{padding:10px 12px 12px}.cc-title{font-size:15px;margin-top:4px}.ccard .card-top{flex-wrap:wrap}.ccard .card-year{font-size:10px}.card-text{padding:16px 18px}.spot-box{padding:18px 16px 8px}.clips{grid-template-columns:1fr 1fr;gap:14px 10px}.clip{min-height:130px;padding:14px 12px 12px}.clip-mast{font-size:16px}.term .ls{grid-template-columns:4ch 10ch minmax(0,1fr);font-size:12.5px}.term .ls .r{display:none}.filters{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(var(--gutter) * -1) 28px;padding:4px var(--gutter) 8px;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{flex:none}.year{grid-template-columns:1fr;padding-bottom:20px}.year-no{position:static;margin-bottom:6px;font-size:44px}.item{padding:14px 0}.item .tag{margin-left:0}.tickets{gap:12px}.t-main{padding-right:18px;padding-bottom:46px}.stamp{top:auto;bottom:10px;right:14px;translate:0;max-width:none;font-size:13px}.ticket{grid-template-columns:74px 1fr;--stub: 74px}.ticket{background:radial-gradient(circle at 74px 0,transparent var(--notch),var(--card) calc(var(--notch) + .5px)) top / 100% 51% no-repeat,radial-gradient(circle at 74px 100%,transparent var(--notch),var(--card) calc(var(--notch) + .5px)) bottom / 100% 51% no-repeat}.t-stub b{font-size:22px}.sheet{width:100vw;max-width:100vw;max-height:92svh;margin:auto 0 0;border-radius:22px 22px 0 0;border-bottom:0;box-shadow:none}@keyframes sheetIn{0%{transform:translateY(100%)}}.bigticket{grid-template-columns:1fr}.bigticket .t-stub{flex-direction:row;gap:10px;border-right:0;border-bottom:2px dashed var(--ink)}.pc-flip{rotate:0deg}.pc-flip>.postcard{align-self:start}.pc-back .pc-top{position:absolute;top:18px;right:16px;min-height:0;margin:0}.pc-back .pc-top .pc-mark{display:none}.pc-back .pc-stamp{width:58px;height:70px;rotate:6deg}.pc-back .pc-stamp .mini-o{font-size:40px}.pc-back .pc-stamp-v{display:none}.pc-back .pc-to{padding-right:70px;font-size:20px}.pc-back .pc-to span{display:block;margin-top:2px}.pc-back .pc-to span:before{content:none}.pc-write{padding-bottom:18px}.pc-field textarea{min-height:8.4em;font-size:17px}.pc-back .pc-side{padding-top:18px}.pc-field.line input{font-size:16px}.pc-actions{margin-top:6px}.postcard{padding:28px 22px}.pc-hand{font-size:18px}.pc-sign{margin-top:24px}.pc-top{min-height:112px}.pc-stamp{width:90px;height:108px}.pc-stamp .mini-o{font-size:64px}.pc-mark{right:60px;width:80px;height:80px}.pc-lines li{gap:8px}.pc-lines .k{width:60px;font-size:10px}.pc-lines a{font-size:14px}.pc-lines a:after{display:none}.pc-copy{padding:3px 8px}}@media(hover:none){.lamp{animation:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html.js .reveal{opacity:1;transform:none}.ribbon-track{animation:none}}@media(max-width:380px){.pc-lines .k{width:50px;font-size:9px;letter-spacing:.04em}.postcard{padding:26px 18px}}@media(max-width:380px){.gb-text{font-size:11px;padding:5px 8px}.gb-o{font-size:28px}.tool{padding:6px 9px}}
