@font-face{font-family:Nu;src:local(Times New Roman),local(TimesNewRomanPSMT),local(Georgia),local(Noto Serif),local(NotoSerif-Regular),local(DejaVu Serif),local(Liberation Serif);unicode-range:U+3BD}:root{--paper:#f7f3f0;--ink:#2b1d1c;--muted:#6a5855;--line:#e2d7cd;--panel:#efe8e1;--accent:#833735;--head:#833735;--gold-ink:#7d5f3c;--mat:#fffdfa;--wine:#833735;--wine-deep:#5e2f2d;--gold:#c29874;--gold-soft:#e7cba9;--cream:#f7f3f0;--font:"Nu", "Zen Kaku Gothic New", "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif;--display:"Nu", "Shippori Mincho", "Yu Mincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;--measure:40em;--wrap:1160px;--gutter:clamp(20px, 5vw, 48px);--gap-section:clamp(72px, 10vw, 120px);--header-h:84px;--rail:clamp(180px, 16.5vw, 228px);--rail-gap:24px;--ease:cubic-bezier(.22, 1, .36, 1);--ease-both:cubic-bezier(.65, 0, .35, 1);--quick:.22s;--calm:.75s;--underline:color-mix(in srgb, var(--gold) 85%, transparent)}@media (prefers-color-scheme:dark){:root{--paper:#1d1413;--ink:#f3ebe5;--muted:#bfaea8;--line:#3d2b29;--panel:#291c1b;--accent:#e7cba9;--head:#e7cba9;--gold-ink:#c29874;--mat:#2a1e1d}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;overflow-x:clip}@media (prefers-reduced-motion:no-preference){html:focus-within{scroll-behavior:smooth}}body{background:var(--paper);color:var(--ink);font-family:var(--font);line-break:strict;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;font-weight:400;line-height:1.9;overflow-x:clip}a{color:inherit;transition:color var(--quick) ease-out, text-decoration-color var(--quick) ease-out;text-decoration:none}a:hover{color:var(--accent)}::selection{background:var(--wine);color:#fff}@media (prefers-color-scheme:dark){::selection{background:var(--gold-soft);color:var(--wine-deep)}}.hero ::selection,.work-hero ::selection,.site-footer ::selection,.lightbox ::selection{background:var(--cream);color:var(--wine)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}img,video{max-width:100%;height:auto;display:block}p{max-width:var(--measure);margin:0 0 1em}ul,ol{margin:0;padding:0;list-style:none}dl,dd{margin:0}h1,h2,h3{margin:0;line-height:1.45}h1,h2{font-family:var(--display);font-weight:500}h3{font-weight:500}h1,h2,h3,.hero-statement,.hero-org p{word-break:auto-phrase;text-wrap:balance}.work-card .summary,.card-role,.piece figcaption,.timeline .title,.timeline .detail,.pubs .title,.pubs .detail,.work-summary,.work-spec dd,.compare-table td,.part-head p,.stage-foot p,.page-head p,.points h3{word-break:auto-phrase;text-wrap:pretty}p,li{text-wrap:pretty}.wrap{width:min(var(--wrap), 100% - var(--gutter) * 2);flex-direction:column;min-height:100svh;margin-inline:auto;display:flex}.wrap>main{flex:1 0 auto}.site-header{z-index:5;min-height:var(--header-h);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:0 24px;padding:14px 0;display:flex;position:relative}.brand{font-family:var(--display);letter-spacing:.16em;align-items:center;gap:12px;font-size:20px;font-weight:500;display:flex}.brand:hover{color:inherit}.mark{flex:none}.nav{margin-inline:-12px;display:flex}.nav a{letter-spacing:.08em;align-items:center;min-height:44px;padding:0 12px;font-size:14px;font-weight:500;display:inline-flex;position:relative}.nav a:after{content:"";transform-origin:0;height:1px;transition:scale .32s var(--ease);background:currentColor;position:absolute;bottom:8px;left:12px;right:12px;scale:0 1}.nav a:hover{color:inherit}.nav a:hover:after,.nav a[aria-current=page]:after{scale:1}.nav a[aria-current=page]:after{background:var(--gold);height:2px}@media (max-width:400px){.nav a{padding:0 9px;font-size:13px}.nav{margin-inline:-9px}.nav a:after{left:9px;right:9px}}@media (prefers-reduced-motion:reduce){.nav a:after{transition:none}}.wrap:has(.hero) .site-header{color:#fff;justify-content:flex-end}.wrap:has(.hero) .brand{display:none}.wrap:has(.hero) .nav a{background:var(--wine);background-clip:content-box}@media (max-width:380px){.wrap:has(.hero) .nav a{padding:0 7px;font-size:12px}.wrap:has(.hero) .nav{margin-inline:-7px}.wrap:has(.hero) .nav a:after{left:7px;right:7px}}.site-footer{isolation:isolate;margin-top:var(--gap-section);color:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:26px 0 30px;font-size:14px;display:flex;position:relative}.site-footer:before{content:"";z-index:-1;background:var(--wine);position:absolute;inset:0 calc(50% - 50vw)}.footer-brand{align-items:center;gap:10px;display:flex}.site-footer ul{flex-wrap:wrap;gap:0 22px;display:flex}.site-footer a{text-underline-offset:.45em;min-height:44px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in srgb, var(--gold-soft) 70%, transparent);text-decoration-color:color-mix(in srgb, var(--gold-soft) 70%, transparent);align-items:center;display:inline-flex}.site-footer a:hover{color:var(--gold-soft);text-decoration-color:currentColor}.hero :focus-visible,.work-hero :focus-visible,.lightbox :focus-visible,.site-footer :focus-visible{outline-color:var(--gold-soft)}.wrap:has(.hero) .site-header :focus-visible{outline-color:var(--gold-soft)}.btn{border:1px solid var(--ink);letter-spacing:.14em;min-height:50px;transition:background-color var(--quick) ease-out, color var(--quick) ease-out, border-color var(--quick) ease-out;border-radius:2px;align-items:center;padding:0 30px;font-size:15px;font-weight:500;display:inline-flex}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{color:var(--paper);background:var(--accent);border-color:var(--accent)}.btn-ghost{background:0 0}.btn-ghost:hover{color:var(--paper);background:var(--ink)}.text-link,.pub-links a,.contact-list a,.back{text-underline-offset:.42em;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--underline);text-decoration-color:var(--underline);font-weight:500}.text-link:hover,.pub-links a:hover,.contact-list a:hover,.back:hover{text-decoration-color:currentColor}.eyebrow{letter-spacing:.1em;color:var(--muted);margin:0;font-size:13px}.hero{--rib-w:clamp(100px, 17vw, 212px);--rib-x:clamp(6px, 4.6vw - 10px, 64px);--notch:calc(var(--rib-w) * .2);--sag:3.4deg;--frame-top:calc(var(--header-h) - 8px);--frame-bottom:clamp(26px, 3.6vw, 46px);--rib-top:calc(var(--header-h) + clamp(4px, 1.6vw, 26px));isolation:isolate;margin-top:calc(-1 * var(--header-h));padding:calc(var(--header-h) + clamp(40px, 6.4vw, 84px)) 0 clamp(84px, 10vw, 132px);color:#fff;position:relative}.hero:before{content:"";z-index:-2;background:var(--wine);position:absolute;inset:0 calc(50% - 50vw)}.hero-text{z-index:1;margin-left:calc(var(--rib-x) + var(--rib-w) + clamp(18px, 5vw, 72px));min-height:clamp(250px,30vw,330px);padding-right:clamp(14px,3vw,44px);position:relative}.hero-org p{max-width:none;font-family:var(--display);letter-spacing:.06em;margin:0;font-size:clamp(12.5px,1.5vw,18px);font-weight:500;line-height:1.75}.hero-org p span{display:inline-block}.hero-org .org-name{border-bottom:1px solid var(--gold);letter-spacing:.1em;margin-bottom:.55em;padding-bottom:.35em;font-size:clamp(18px,2.3vw,28px)}.hero h1{letter-spacing:.04em;flex-wrap:wrap;gap:0 .62em;margin-top:clamp(16px,2.8vw,34px);font-size:clamp(44px,7.6vw,98px);line-height:1.18;display:flex}.name-part{flex-direction:column;display:inline-flex}.name-part .latin{letter-spacing:.3em;text-transform:uppercase;color:var(--gold-soft);margin-top:.5em;font-size:clamp(11px,1.5vw,19px);line-height:1.4}.hero-statement{color:#ffffffe6;max-width:31em;margin:clamp(18px,2.6vw,30px) 0 0;font-size:15px;line-height:1.9}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:clamp(20px,2.6vw,30px);display:flex}.hero .btn-primary{background:var(--cream);border-color:var(--cream);color:var(--wine)}.hero .btn-primary:hover{color:var(--wine);background:#fff;border-color:#fff}.hero .btn-ghost{color:#fff;border-color:#ffffffb8}.hero .btn-ghost:hover{color:#fff;background:#ffffff24}@media (max-width:560px){.hero .btn{min-height:46px;padding:0 18px;font-size:14px}.hero .hero-statement,.hero .hero-actions{margin-left:calc(16px - var(--rib-x) - var(--rib-w) - clamp(18px, 5vw, 72px))}}@media (min-width:920px){.hero{--rib-x:calc(var(--rail) * .2);--rib-w:calc(var(--rail) * .74)}.hero-text{margin-left:calc(var(--rail) + var(--rail-gap))}}.hero-emblem{display:none}.hero-water{z-index:0;inset:calc(var(--frame-top) + 2px) 2px calc(var(--frame-bottom) + 2px) 2px;pointer-events:none;position:absolute;overflow:hidden}.water-ripple{width:0;height:0;position:absolute}.water-ripple i{width:var(--r,320px);height:calc(var(--r,320px) * .25);border:var(--w,3px) solid color-mix(in srgb, var(--cream) 48%, var(--wine));opacity:0;border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%)scale(.05)}@media (min-width:980px){.hero{--emblem-w:clamp(250px, 26vw, 360px);--emblem-r:clamp(40px, 5.6vw, 92px)}.hero-emblem{z-index:2;right:var(--emblem-r);top:calc(var(--frame-top) + (100% - var(--frame-top) - var(--frame-bottom)) / 2);width:var(--emblem-w);color:color-mix(in srgb, var(--cream) 11%, var(--wine));cursor:pointer;-webkit-tap-highlight-color:transparent;animation:emblem-in 1.6s var(--ease) .8s backwards;display:block;position:absolute;translate:0 -50%}.hero-emblem .mark{width:100%;height:auto;display:block}.hero-statement{max-width:min(31em, 100% - var(--emblem-w) - var(--emblem-r) + clamp(14px, 3vw, 44px) - 28px)}}@keyframes emblem-in{0%{opacity:0}}.frame-sheen{display:none}.hero .frame-sheen{--ring:#0000 29.1px, #000 29.4px 30.6px, #0000 30.9px;-webkit-mask:linear-gradient(#000 0 0) 30px 0 / calc(100% - 60px) 1.5px no-repeat, linear-gradient(#000 0 0) 30px 100% / calc(100% - 60px) 1.5px no-repeat, linear-gradient(#000 0 0) 0 30px / 1.5px calc(100% - 60px) no-repeat, linear-gradient(#000 0 0) 100% 30px / 1.5px calc(100% - 60px) no-repeat, radial-gradient(circle at .75px .75px, var(--ring)) 0 0 / 32px 32px no-repeat, radial-gradient(circle at calc(100% - .75px) .75px, var(--ring)) 100% 0 / 32px 32px no-repeat, radial-gradient(circle at .75px calc(100% - .75px), var(--ring)) 0 100% / 32px 32px no-repeat, radial-gradient(circle at calc(100% - .75px) calc(100% - .75px), var(--ring)) 100% 100% / 32px 32px no-repeat;mask:linear-gradient(#000 0 0) 30px 0 / calc(100% - 60px) 1.5px no-repeat, linear-gradient(#000 0 0) 30px 100% / calc(100% - 60px) 1.5px no-repeat, linear-gradient(#000 0 0) 0 30px / 1.5px calc(100% - 60px) no-repeat, linear-gradient(#000 0 0) 100% 30px / 1.5px calc(100% - 60px) no-repeat, radial-gradient(circle at .75px .75px, var(--ring)) 0 0 / 32px 32px no-repeat, radial-gradient(circle at calc(100% - .75px) .75px, var(--ring)) 100% 0 / 32px 32px no-repeat, radial-gradient(circle at .75px calc(100% - .75px), var(--ring)) 0 100% / 32px 32px no-repeat, radial-gradient(circle at calc(100% - .75px) calc(100% - .75px), var(--ring)) 100% 100% / 32px 32px no-repeat;display:block;position:absolute;inset:0;overflow:hidden}.frame-sheen i{background:linear-gradient(112deg,#fff4e200 30%,#fff4e2b8 44%,#fffaf2 50%,#fff4e2b8 56%,#fff4e200 70%);width:100%;animation:12s ease-in-out 3s infinite sheen-pass;position:absolute;top:0;bottom:0;left:0;translate:-100%}@keyframes sheen-pass{0%{translate:-100%}50%,to{translate:100%}}.hero-text>*{animation:hero-in 1s var(--ease) backwards;animation-delay:calc(.25s + var(--i,0) * 90ms)}@keyframes hero-in{0%{opacity:0;translate:0 12px}}.ribbon-slot{z-index:2;left:var(--rib-x);width:var(--rib-w);filter:drop-shadow(5px 4px 0 var(--wine-deep));pointer-events:none;position:absolute;top:0}.ribbon{pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent;padding:var(--rib-top) 10px calc(var(--notch) + clamp(14px, 2vw, 24px));background:var(--cream);color:var(--wine);text-align:center;clip-path:polygon(0 0, 100% 0, 100% 100%, 50% calc(100% - var(--notch)), 0 100%);transform-origin:50% 0;animation:ribbon-drop 1.1s var(--ease) .1s backwards}.ribbon.tug{animation:ribbon-tug .8s var(--ease)}@keyframes ribbon-drop{0%{translate:0 -102%}}@keyframes ribbon-tug{22%{scale:1 1.05}48%{scale:1 .988}72%{scale:1 1.008}}.ribbon-words{font-family:var(--display);letter-spacing:.14em;font-size:clamp(14px,1.8vw,22px);font-weight:500;line-height:1.95}.ribbon .mark{width:56%;height:auto;margin:clamp(10px,1.6vw,22px) auto 0;display:block}.ribbon-label{max-width:none;font-family:var(--display);letter-spacing:clamp(.06em,.9vw - .2em,.24em);white-space:nowrap;margin:clamp(4px,.8vw,10px) 0 0;font-size:clamp(10px,1.05vw,13px)}.frame-box{z-index:0;left:0;right:0;top:var(--frame-top);bottom:var(--frame-bottom);pointer-events:none;position:absolute}.frame{color:var(--gold);position:absolute;inset:0}.frame-line{background:currentColor;position:absolute}.frame-line.t,.frame-line.b{height:1.5px;left:30px;right:30px}.frame-line.l,.frame-line.r{width:1.5px;top:30px;bottom:30px}.frame-line.t{top:0}.frame-line.b{bottom:0}.frame-line.l{left:0}.frame-line.r{right:0}.frame-corner{position:absolute;overflow:visible}.frame-corner.tl{top:0;left:0}.frame-corner.tr{top:0;right:0;transform:scaleX(-1)}.frame-corner.bl{bottom:0;left:0;transform:scaleY(-1)}.frame-corner.br{bottom:0;right:0;transform:scale(-1)}.pin{pointer-events:auto;cursor:pointer;-webkit-tap-highlight-color:transparent;place-items:center;width:40px;height:40px;display:grid;position:absolute}.pin i{width:9px;height:9px;transition:scale var(--quick) ease-out;background:currentColor;border-radius:50%}.pin:hover i{scale:1.55}.pin.tl{top:-9px;left:-9px}.pin.tr{top:-9px;right:-9px}.pin.bl{bottom:-9px;left:-9px}.pin.br{bottom:-9px;right:-9px}.pin.off{pointer-events:none;animation:.75s cubic-bezier(.5,0,1,.6) forwards pin-off}@keyframes pin-off{18%{translate:4px -10px}to{opacity:0;translate:12px 70vh}}.frame.hang{animation:frame-settle 1.1s var(--ease) .2s backwards}.frame.rehang{animation:frame-hang 1.2s var(--ease) backwards}@keyframes frame-settle{0%{opacity:0;translate:0 -10px}}@keyframes frame-hang{0%{translate:0 -130%}}.frame.hang .pin.tr i{animation:pin-hint 1.2s var(--ease-both) 3.6s 1}@keyframes pin-hint{40%{scale:1.6}}.frame.nudge{animation:frame-nudge .6s var(--ease)}@keyframes frame-nudge{25%{rotate:.3deg}60%{rotate:-.15deg}}.frame.sag-l,.frame.fall-l{transform-origin:calc(100% - 11px) 11px}.frame.sag-r,.frame.fall-r{transform-origin:11px 11px}.frame.sag-l{animation:frame-sag-l 1.6s var(--ease-both) forwards}.frame.sag-r{animation:frame-sag-r 1.6s var(--ease-both) forwards}@keyframes frame-sag-l{30%{rotate:calc(var(--sag) * -1.3)}58%{rotate:calc(var(--sag) * -.85)}80%{rotate:calc(var(--sag) * -1.06)}to{rotate:calc(var(--sag) * -1)}}@keyframes frame-sag-r{30%{rotate:calc(var(--sag) * 1.3)}58%{rotate:calc(var(--sag) * .85)}80%{rotate:calc(var(--sag) * 1.06)}to{rotate:var(--sag)}}.frame.fall-l{animation:1.1s cubic-bezier(.55,0,.9,.5) forwards frame-fall-l}.frame.fall-r{animation:1.1s cubic-bezier(.55,0,.9,.5) forwards frame-fall-r}@keyframes frame-fall-l{0%{rotate:calc(var(--sag) * -1)}to{rotate:calc(var(--sag) * -3.4);translate:0 150vh}}@keyframes frame-fall-r{0%{rotate:var(--sag)}to{rotate:calc(var(--sag) * 3.4);translate:0 150vh}}@media (max-width:700px){.hero,.work-hero{--sag:6.5deg}}@media (max-width:380px){.hero-org p{letter-spacing:.03em;font-size:12px}}@media (max-width:340px){.hero{--rib-w:84px}.hero h1{font-size:38px}.hero-org p{font-size:11.5px}.ribbon{padding-inline:6px}.ribbon-words{letter-spacing:.06em;font-size:12px}.ribbon-label{letter-spacing:.04em;font-size:9px}.wrap:has(.hero) .nav a{letter-spacing:.04em;padding:0 5px;font-size:11.5px}.wrap:has(.hero) .nav{margin-inline:-5px}}.section{margin-top:var(--gap-section)}.section h2{letter-spacing:.14em;color:var(--head);font-size:clamp(24px,2.6vw,30px)}.section-head{border-bottom:1px solid var(--gold);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 16px;margin-bottom:36px;padding-bottom:12px;display:flex}.section-head .text-link{font-size:14px}.work-group{grid-template-columns:var(--rail) minmax(0, 1fr);gap:20px var(--rail-gap);padding-bottom:48px;display:grid}.work-group+.work-group{border-top:1px solid var(--line);padding-top:48px}.work-group:last-child{padding-bottom:0}.work-group-head h3{font-family:var(--display);letter-spacing:.12em;color:var(--head);font-size:22px;font-weight:500}.work-group-head ul{color:var(--muted);margin-top:10px;font-size:13px;line-height:1.9}.work-group .works-grid{--card-gap:40px;column-gap:var(--rail-gap);grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:759px){.work-group .works-grid{grid-template-columns:minmax(0,1fr)}}@media (max-width:919px){.work-group{grid-template-columns:minmax(0,1fr)}.work-group-head ul{flex-wrap:wrap;gap:0 1.2em;margin-top:6px;display:flex}}.works-grid{--card-gap:52px;margin-bottom:calc(-1 * var(--card-gap));grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:0 32px;display:grid}.work-card{grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;min-width:0;padding-bottom:var(--card-gap);grid-row:span 5;display:grid}.roll{isolation:isolate;aspect-ratio:4/3;background:var(--wine);border-radius:2px;position:relative;overflow:hidden;container-type:inline-size}.roll-back{font-family:var(--display);letter-spacing:.04em;color:#fff;grid-template-columns:2.5em minmax(0,1fr);align-content:center;gap:5px 10px;margin:0;padding:14px 18px 14px 56px;font-size:clamp(12px,4.2cqi,15px);font-weight:500;line-height:1.6;display:grid;position:absolute;inset:24px 0 0}.roll-back:before{content:"";border:1px solid var(--gold);corner-shape:scoop;pointer-events:none;border-radius:11px;position:absolute;inset:7px}.roll-back dt{color:var(--gold-soft)}.roll-back dd{overflow-wrap:anywhere;word-break:auto-phrase;text-wrap:pretty}.roll-screen{z-index:1;background:var(--panel);border-bottom:3px solid var(--gold);transition:translate var(--calm) var(--ease);position:absolute;inset:0}.roll-screen img{object-fit:cover;width:100%;height:100%}.roll.up .roll-screen{translate:0 calc(24px - 100%)}.roll.instant .roll-screen{transition:none}.roll-link{z-index:2;position:absolute;inset:0}.roll-cord-slot{z-index:3;filter:drop-shadow(3px 2px 0 var(--wine-deep));position:absolute;top:0;left:16px}.roll-cord{background:var(--cream);width:26px;color:var(--wine);cursor:pointer;-webkit-tap-highlight-color:transparent;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 7px),0 100%);font-family:var(--display);letter-spacing:.08em;writing-mode:vertical-rl;transition:padding-bottom .3s var(--ease);border:0;margin:0;padding:10px 0 17px;font-size:10.5px;font-weight:500;line-height:26px;display:block;position:relative}.roll-cord:before{content:"";position:absolute;inset:0 -10px -8px}.roll-cord:hover,.roll.up .roll-cord{padding-bottom:25px}.roll-cord:focus-visible{outline:none}.roll-cord-slot:has(:focus-visible){outline-offset:2px;box-shadow:0 0 0 5px var(--wine-deep);outline:2px solid #fff}@media (prefers-reduced-motion:reduce){.roll-screen,.roll-cord{transition:none}}.card-caption{display:contents}.card-caption h3{overflow-wrap:anywhere;border-bottom:1px solid var(--gold);font-family:var(--display);letter-spacing:.04em;color:var(--head);grid-template-columns:minmax(0,1fr);align-content:end;margin-top:14px;padding-bottom:9px;font-size:18px;font-weight:500;line-height:1.55;display:grid}.card-caption h3 a{display:block}:is(.card-caption h3 a:hover,.work-card:has(.roll-link:hover) .card-caption h3 a){color:var(--ink)}.card-meta{font-family:var(--display);letter-spacing:.14em;color:var(--gold-ink);margin:9px 0 0;font-size:12.5px;font-weight:500}.work-card .summary{color:var(--muted);margin:6px 0 0;font-size:14px;line-height:1.8}.card-role{max-width:none;font-family:var(--display);letter-spacing:.04em;grid-template-columns:auto minmax(0,1fr);align-self:start;gap:0 .9em;margin:10px 0 0;font-size:13px;font-weight:500;line-height:1.7;display:grid}.card-role span:first-child{color:var(--gold-ink)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.me{grid-template-columns:var(--rail) minmax(0, 1fr);gap:28px var(--rail-gap);align-items:start;display:grid}.me-photo{margin:0}.me-photo img{border:1px solid var(--line);background:var(--panel);border-radius:2px;width:100%}.me-body p{max-width:576px}.me-facts{border-block:1px solid var(--line);grid-template-columns:4.5em minmax(0,1fr);gap:8px 16px;max-width:576px;margin:24px 0 0;padding:18px 0;font-size:14px;display:grid}.me-facts dt{color:var(--muted)}.me-facts dd{overflow-wrap:anywhere}@media (max-width:919px){.me{grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:28px 32px}}@media (max-width:640px){.me{grid-template-columns:minmax(0,1fr)}.me-photo{width:min(60vw,250px)}}.filter{flex-wrap:wrap;gap:4px 28px;margin:18px 0 40px;display:flex}.filter a{letter-spacing:.08em;min-height:44px;color:var(--muted);align-items:center;font-size:14.5px;font-weight:500;display:inline-flex;position:relative}.filter a:after{content:"";transform-origin:0;height:1px;transition:scale .32s var(--ease);background:currentColor;position:absolute;bottom:8px;left:0;right:0;scale:0 1}.filter a:hover{color:var(--ink)}.filter a:hover:after{scale:1}.filter a[aria-current=true]{color:var(--head)}.filter a[aria-current=true]:after{background:var(--gold);height:2px;scale:1}@media (prefers-reduced-motion:reduce){.filter a:after{transition:none}}@media (max-width:560px){.filter{gap:0 18px}.filter a{letter-spacing:.02em;font-size:13.5px}}.page-head{border-bottom:1px solid var(--gold);padding:clamp(36px,6vw,64px) 0 22px}.page-head h1{letter-spacing:.14em;color:var(--head);font-size:clamp(32px,4.8vw,48px)}.page-head p{max-width:none;color:var(--muted);margin:10px 0 0}.not-found h1{margin-top:6px;font-size:clamp(26px,4.2vw,38px)}.work-hero{--rib-w:clamp(84px, 11.5vw, 148px);--rib-x:clamp(6px, 3.4vw, 48px);--notch:calc(var(--rib-w) * .2);--sag:3.4deg;--frame-top:clamp(14px, 2vw, 26px);--frame-bottom:clamp(14px, 2vw, 26px);--rib-top:clamp(30px, 4.4vw, 60px);isolation:isolate;color:#fff;margin-top:clamp(4px,1vw,12px);padding:clamp(46px,6vw,84px) 0 clamp(50px,6.4vw,88px);position:relative}.work-hero:before{content:"";z-index:-2;background:var(--wine);position:absolute;inset:0 calc(50% - 50vw)}.ribbon-year{max-width:none;font-family:var(--display);letter-spacing:.06em;margin:0;font-size:clamp(15px,1.9vw,24px);font-weight:500;line-height:1.5}.ribbon-cat{border-top:1px solid var(--gold);max-width:none;font-family:var(--display);letter-spacing:.1em;word-break:auto-phrase;margin:clamp(6px,.9vw,12px) 0 0;padding-top:clamp(6px,.9vw,12px);font-size:clamp(11px,1.15vw,14px);font-weight:500;line-height:1.6}.work-hero-text{z-index:1;margin-left:calc(var(--rib-x) + var(--rib-w) + clamp(16px, 4vw, 56px));min-height:clamp(170px,20vw,230px);padding-right:clamp(14px,3vw,44px);position:relative}.work-hero h1{border-bottom:1px solid var(--gold);letter-spacing:.06em;padding-bottom:.4em;font-size:clamp(25px,3.9vw,46px);line-height:1.4}.work-summary{color:#ffffffeb;max-width:40em;margin:clamp(14px,1.8vw,22px) 0 0;font-size:clamp(14.5px,1.3vw,16.5px);line-height:1.9}.work-spec{max-width:46em;font-family:var(--display);letter-spacing:.04em;grid-template-columns:3.2em minmax(0,1fr);gap:6px 14px;margin-top:clamp(18px,2.2vw,26px);font-size:clamp(13px,1.2vw,15px);font-weight:500;line-height:1.75;display:grid}.work-spec dt{color:var(--gold-soft)}.work-hero .btn-primary{background:var(--cream);border-color:var(--cream);color:var(--wine)}.work-hero .btn-primary:hover{color:var(--wine);background:#fff;border-color:#fff}.work-hero .btn-ghost{color:#fff;border-color:#ffffffb8}.work-hero .btn-ghost:hover{color:#fff;background:#ffffff24}@media (max-width:560px){.work-hero .btn{min-height:46px;padding:0 18px;font-size:14px}}@media (min-width:920px){.work-hero-text{margin-left:calc(var(--rail) + var(--rail-gap))}}@media (max-width:560px){.work-hero-text{margin-left:0;padding-inline:16px 14px}.work-hero h1{min-height:108px;margin-left:calc(var(--rib-x) + var(--rib-w));overflow-wrap:anywhere;grid-template-columns:minmax(0,1fr);align-content:end;display:grid}}@media (max-width:380px){.work-hero h1{text-wrap:wrap;font-size:21px}}.stage{margin-top:clamp(40px,6vw,72px);scroll-margin-top:16px}.stage-roll{aspect-ratio:16/10;border:1px solid var(--line);background:#0b0b0d}@media (min-width:900px){.stage-roll{min-height:440px;max-height:calc(100svh - 32px);margin-inline:auto}}.stage-live{position:absolute;inset:31px 0 0;overflow:hidden}.stage-live iframe{background:#0b0b0d;border:0;width:100%;height:100%;display:block}.stage-roll .roll-screen{border-bottom-width:4px}.stage-roll.up .roll-screen{translate:0 calc(31px - 100%)}.stage-roll .roll-cord-slot{left:clamp(16px,3vw,40px)}.stage-roll .roll-cord{letter-spacing:.2em;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 10px),0 100%);width:40px;padding:16px 0 26px;font-size:14px;line-height:40px}.stage-roll .roll-cord:hover{padding-bottom:36px}.stage-roll.up .roll-cord{writing-mode:horizontal-tb;letter-spacing:.12em;clip-path:none;width:auto;padding:0 16px;font-size:13px;line-height:31px}.stage-roll.up .roll-cord-slot{filter:none}.stage-foot{flex-wrap:wrap;align-items:baseline;gap:4px 20px;margin-top:14px;font-size:14px;display:flex}.stage-foot p{max-width:none;color:var(--muted);margin:0}.stage-hint{font-family:var(--display);letter-spacing:.06em;font-weight:500;color:var(--gold-ink)!important}.stage-foot .text-link{margin-left:auto}@media (max-width:899px){.stage-roll .roll-cord-slot,.stage-hint{display:none}.stage-foot .text-link{align-items:center;min-height:44px;margin-left:0;display:inline-flex}}.work-text{max-width:44em;margin-top:clamp(40px,6vw,72px)}.work-text p{white-space:pre-line;max-width:none;font-size:16.5px;line-height:2}.work-text p:last-child{margin-bottom:0}.work-note{color:var(--muted);font-size:14px!important}@media (min-width:920px){.work-text{margin-left:calc(var(--rail) + var(--rail-gap))}}.work-part{grid-template-columns:var(--rail) minmax(0, 1fr);gap:20px var(--rail-gap);border-top:1px solid var(--gold);margin-top:clamp(56px,7vw,88px);padding-top:28px;display:grid}.part-head h2{letter-spacing:.1em;color:var(--head);font-size:20px;line-height:1.6}.part-head p{color:var(--muted);margin:10px 0 0;font-size:13px;line-height:1.8}@media (max-width:919px){.work-part{grid-template-columns:minmax(0,1fr)}}.points li{border-top:1px solid var(--line);padding:18px 0}.points li:first-child{border-top:0;padding-top:0}.points li:last-child{padding-bottom:0}.points h3{font-family:var(--display);letter-spacing:.05em;color:var(--head);font-size:17px;font-weight:500;line-height:1.6}.points p{max-width:44em;margin:6px 0 0;font-size:15.5px;line-height:1.95}.compare-body{min-width:0}.compare-body .gallery{gap:clamp(24px,3vw,36px);margin:0 0 clamp(28px,4vw,44px)}.compare-table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:15px;line-height:1.85}.compare-table thead td{width:8.5em}.compare-table th,.compare-table td{text-align:left;vertical-align:top;border-top:1px solid var(--line);padding:16px 28px 16px 0}.compare-table th:last-child,.compare-table td:last-child{padding-right:0}.compare-table thead th,.compare-table thead td{border-top:0;padding-top:0;padding-bottom:12px}.compare-table thead th{font-family:var(--display);letter-spacing:.1em;color:var(--gold-ink);font-size:13px;font-weight:500}.compare-table tbody th{white-space:nowrap;font-family:var(--display);letter-spacing:.06em;color:var(--head);font-size:16px;font-weight:500}.compare-table tbody td:first-of-type{color:var(--muted)}@media (max-width:700px){.compare-table,.compare-table tbody,.compare-table tr,.compare-table th,.compare-table td{width:auto;display:block}.compare-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.compare-table tr{border-top:1px solid var(--line);padding:16px 0}.compare-table tbody tr:first-child{border-top:0;padding-top:0}.compare-table th,.compare-table td{border:0;padding:0}.compare-table tbody td{margin-top:10px}.compare-table tbody td:before{content:attr(data-label);font-family:var(--display);letter-spacing:.1em;color:var(--gold-ink);font-size:12.5px;font-weight:500;display:block}}.gallery{gap:clamp(40px,5vw,68px);margin-top:clamp(56px,7vw,96px);display:grid}.hang{--g:clamp(16px, 2.2vw, 28px);--pad:clamp(6px, .8vw, 11px);--chrome:calc(var(--pad) * 2 + 2px);--max-h:min(66vh, 600px);align-items:flex-start;gap:var(--g);width:100%;max-width:calc(min(var(--cap), var(--max-h)) * var(--sum) + (var(--n) - 1) * var(--g) + var(--n) * var(--chrome));margin-inline:auto;display:flex}.hang-solo{--max-h:min(84vh, 800px)}.hang-feature{--max-h:min(84vh, 760px)}.side-stack{gap:var(--g);align-content:start;display:grid}.side-stack>.hang{max-width:none;margin:0}.piece{flex:var(--r) 1 var(--chrome);min-width:0;margin:0}.piece-frame{width:100%;padding:var(--pad,clamp(7px, 1vw, 14px));background:var(--mat);border:1px solid var(--gold);corner-shape:scoop;font:inherit;color:inherit;text-align:left;border-radius:13px;margin:0;display:block;box-shadow:0 16px 26px -22px #2b1d1c8c}button.piece-frame{cursor:zoom-in;transition:box-shadow .3s var(--ease), translate .3s var(--ease)}button.piece-frame:hover{translate:0 -2px;box-shadow:0 22px 30px -22px #2b1d1cb3}.piece-frame img,.piece-frame video{background:var(--panel);border-radius:1px;width:100%;height:auto;display:block}.piece figcaption{font-family:var(--display);letter-spacing:.03em;color:var(--muted);margin-top:11px;font-size:13px;font-weight:500;line-height:1.75}@media (max-width:640px){.hang:not(.hang-tall){flex-direction:column;gap:clamp(28px,7vw,40px);max-width:none}.hang:not(.hang-tall) .piece{flex:none;width:100%}.hang-tall{--g:12px}.hang-small:not(.hang-tall){grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:22px 12px;display:grid}.hang-small.hang-pair:not(.hang-tall){flex-direction:row;gap:12px;display:flex}.hang-small.hang-pair:not(.hang-tall) .piece{flex:var(--r) 1 var(--chrome);width:auto}.hang-tall figcaption,.hang-small figcaption{word-break:normal;text-wrap:wrap;font-size:12px;line-height:1.65}}@media (prefers-reduced-motion:reduce){button.piece-frame{transition:none}button.piece-frame:hover{translate:none}}html:has(dialog.lightbox[open]){overflow:hidden}.lightbox{background:var(--wine);color:#fff;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;overflow:hidden}.lightbox::backdrop{background:var(--wine)}.lightbox[open]{animation:.3s ease-out lightbox-in}@keyframes lightbox-in{0%{opacity:0}}.lightbox-body{place-items:center;width:100%;height:100%;padding:20px clamp(12px,6vw,88px) 74px;display:grid;position:relative}.lightbox-piece{min-width:0;max-width:100%;animation:lightbox-rise .55s var(--ease);justify-items:center;gap:12px;margin:0;display:grid}.lightbox-piece.moved{animation:.3s ease-out lightbox-in}@keyframes lightbox-rise{0%{opacity:0;translate:0 14px}}.lightbox .piece-frame{--mat:var(--cream);width:fit-content;max-width:100%;box-shadow:0 26px 40px -26px #0009}.lightbox .piece-frame img{width:auto;max-width:min(100%,1560px);max-height:calc(100dvh - 190px)}.lightbox figcaption{max-width:46em;font-family:var(--display);text-align:center;flex-wrap:wrap;justify-content:center;gap:4px 18px;font-size:14px;font-weight:500;line-height:1.8;display:flex}.lightbox-count{color:var(--gold-soft);letter-spacing:.12em;font-variant-numeric:tabular-nums}.lightbox-nav,.lightbox-close{color:#fff;font:inherit;cursor:pointer;transition:background-color var(--quick) ease-out;background:0 0;border:1px solid #fff9;border-radius:2px;place-items:center;display:grid;position:absolute}.lightbox-nav{width:46px;height:64px;font-size:28px;line-height:1;top:50%;translate:0 -50%}.lightbox-nav.prev{left:clamp(6px,1.6vw,24px)}.lightbox-nav.next{right:clamp(6px,1.6vw,24px)}.lightbox-close{letter-spacing:.14em;min-height:44px;padding:0 28px;font-size:14px;font-weight:500;bottom:16px;left:50%;translate:-50%}.lightbox-nav:hover,.lightbox-close:hover{background:#ffffff24}@media (max-width:640px){.lightbox-nav{width:48px;height:48px;top:auto;bottom:14px;translate:none}.lightbox-body{padding-inline:10px}}@media (prefers-reduced-motion:reduce){.lightbox[open],.lightbox-piece,.lightbox-piece.moved{animation:none}}.work-nav{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:16px 24px;margin-top:72px;padding-top:20px;font-size:15px;font-weight:500;display:flex}.work-nav a{align-items:center;min-height:44px;display:inline-flex}.back{align-items:center;min-height:44px;margin-top:32px;display:inline-flex}.cv-block{grid-template-columns:var(--rail) minmax(0, 1fr);gap:12px var(--rail-gap);border-top:1px solid var(--line);padding:40px 0;display:grid}.page-head+.cv-block{border-top:0}.cv-block h2{letter-spacing:.12em;color:var(--head);font-size:20px;line-height:30.4px}.cv-body>:first-child,.cv-body>ul>li:first-child{margin-top:0;padding-top:0}.cv-body>:last-child{margin-bottom:0}.cv-body>ul>li:last-child{padding-bottom:0}@media (max-width:919px){.cv-block{grid-template-columns:minmax(0,1fr);padding:32px 0}}.timeline li,.skills li,.pubs li{grid-template-columns:8.5em minmax(0,1fr);align-items:baseline;gap:16px;padding:14px 0;display:grid}@media (min-width:920px){.section .timeline li{grid-template-columns:var(--rail) minmax(0, 1fr);gap:var(--rail-gap)}}@media (max-width:560px){.timeline li,.skills li,.pubs li{grid-template-columns:1fr;gap:2px}}.timeline .period,.pubs .period,.pub-date,.skills .group{color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px}.timeline li>div,.pubs li>div{max-width:46em}.timeline .title,.pubs .title{font-family:var(--display);letter-spacing:.03em;font-size:17px;font-weight:700;line-height:1.7}.timeline .detail,.pubs .detail{color:var(--muted);margin-top:2px;font-size:14px}.section .timeline li+li{border-top:1px solid var(--line)}.skills .items{flex-wrap:wrap;gap:8px;display:flex}.skills .items span{border:1px solid var(--line);border-radius:2px;padding:1px 12px;font-size:14px}.pub-links{flex-wrap:wrap;gap:4px 20px;margin-top:4px;font-size:14px;display:flex}.pub-links a{align-items:center;min-height:40px;display:inline-flex}.pub-note{color:var(--muted);margin-top:12px;font-size:13px}.pubs-thumb li{border-top:1px solid var(--line);grid-template-columns:minmax(0,220px) minmax(0,1fr);align-items:start;gap:24px;padding:20px 0}.pubs-thumb li:first-child{border-top:0;padding-top:0}@media (max-width:640px){.pubs-thumb li{grid-template-columns:1fr;gap:12px}}.pub-thumb img{border:1px solid var(--line);border-radius:2px;width:100%}.pub-date{margin-bottom:4px}.contact-list li{grid-template-columns:var(--rail) minmax(0, 1fr);gap:var(--rail-gap);border-bottom:1px solid var(--line);align-items:center;padding:14px 0;display:grid}@media (max-width:640px){.contact-list li{grid-template-columns:5.5em minmax(0,1fr);gap:16px}}@media (max-width:400px){.contact-list li{grid-template-columns:4.2em minmax(0,1fr);gap:10px}}.contact-list .label{color:var(--muted);font-size:14px}.contact-list .ch{transition:color .2s ease-out}.contact-list .ch.gone{color:#0000;background:linear-gradient(var(--accent), var(--accent)) no-repeat 50% 100% / 70% 2px}.contact-list .ch.is-targeted{color:var(--accent);animation:.16s ease-in-out infinite alternate ch-alert;display:inline-block}@keyframes ch-alert{0%{transform:translateY(0)scale(1.3)rotate(-7deg)}to{transform:translateY(-3px)scale(1.55)rotate(7deg)}}.contact-list.is-playing a{pointer-events:none}.mail-game{justify-items:start;gap:16px;margin-top:40px;display:grid}.mail-game p{max-width:40em;color:var(--muted);margin:0}.mail-game .game-result{font-family:var(--display);letter-spacing:.06em;color:var(--head);font-size:21px}.mail-game .game-hud{color:var(--ink);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:6px 28px;display:flex}.mail-game .game-hud b{font-family:var(--display);color:var(--head);margin:0 .2em;font-size:22px;font-weight:500}.mail-game .hp{vertical-align:-1px;gap:4px;margin-left:.4em;display:inline-flex}.mail-game .hp i{border:1px solid var(--gold);border-radius:50%;width:11px;height:11px}.mail-game .hp i.on{border-color:var(--accent);background:var(--accent)}.mail-game .game-actions{flex-wrap:wrap;gap:12px;display:flex}.mail-game .hp.lives i.on{border-color:var(--gold-ink);background:var(--gold)}.mail-game .game-effects{flex-wrap:wrap;gap:6px 10px;min-height:30px;display:flex}.mail-game .game-effect,.mail-game .game-news{border:1px solid var(--gold);color:var(--ink);border-radius:999px;align-items:center;padding:2px 10px;font-size:14px;display:inline-flex}.mail-game .game-news{color:var(--muted);border-color:#0000;animation:.3s ease-out monster-drop}.mail-row{flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0;display:inline-flex}.restore-letters{border:1px solid var(--gold);width:40px;height:40px;color:var(--accent);cursor:pointer;transition:background-color var(--quick) ease-out, border-color var(--quick) ease-out;background:0 0;border-radius:50%;place-items:center;padding:0;animation:.3s ease-out monster-drop;display:inline-grid}.restore-letters:hover{border-color:var(--accent);background:color-mix(in srgb, var(--gold-soft) 30%, transparent)}.restore-letters:hover svg{animation:.6s ease-in-out restore-spin}@media (max-width:640px){.mail-row{flex-wrap:nowrap;gap:6px}.restore-letters{flex:none;width:28px;height:28px}.restore-letters svg{width:16px;height:16px}}@keyframes restore-spin{to{rotate:1turn}}html.is-gaming{touch-action:none;overscroll-behavior:none;overflow:hidden}.contact-list{transition:translate .7s cubic-bezier(.3,.7,.3,1)}.game-bar{z-index:30;border-bottom:1px solid var(--gold);background:var(--paper);animation:.35s ease-out game-bar-in;position:fixed;top:0;left:0;right:0}.game-bar-inner{width:min(var(--wrap), 100% - var(--gutter) * 2);min-height:var(--header-h);grid-template-columns:minmax(0,1fr) auto;align-content:center;align-items:center;gap:2px 16px;margin-inline:auto;padding:8px 0;display:grid}.game-bar-inner .game-hud,.game-bar-inner .game-effects{grid-column:1}.game-bar-inner .game-stop{grid-area:1/2/span 2}.mail-game .game-bar .game-hud{gap:4px 22px;font-size:14px}.mail-game .game-bar .game-hud b{font-size:19px}.mail-game .game-bar .game-effects{white-space:nowrap;flex-wrap:nowrap;height:24px;min-height:0;overflow:hidden}@media (max-width:640px){.mail-game .game-bar .effect-name{display:none}}.mail-game .game-bar .game-effect,.mail-game .game-bar .game-news{padding:0 8px;font-size:13px}.game-stop{border:1px solid var(--ink);min-height:40px;font:inherit;letter-spacing:.12em;color:var(--ink);cursor:pointer;background:0 0;border-radius:2px;padding:0 16px;font-size:14px}.game-stop:hover{background:var(--ink);color:var(--paper)}@keyframes game-bar-in{0%{translate:0 -100%}}.ufo-start{border:1px solid var(--gold);cursor:pointer;width:104px;height:60px;transition:background-color var(--quick) ease-out, border-color var(--quick) ease-out;background:0 0;border-radius:999px;place-items:center;padding:8px 12px;display:inline-grid}.ufo-start span{width:100%;display:block}.ufo-start svg{width:100%;height:auto;animation:1.6s ease-in-out infinite alternate ship-bob;display:block;overflow:visible}.ufo-start:hover{border-color:var(--accent);background:color-mix(in srgb, var(--gold-soft) 30%, transparent)}.ufo-start:hover .s-hatch,.ufo-start:focus-visible .s-hatch{fill:var(--gold-soft)}html.is-gaming body{-webkit-user-select:none;user-select:none}.game-canvas{width:100%;height:100%;position:absolute;inset:0}.game-item{width:30px;height:30px;position:absolute;top:-15px;left:-15px}.game-item span{border:1.5px solid var(--item,var(--gold));background:var(--paper);width:100%;height:100%;color:var(--item,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb, var(--item,var(--gold)) 22%, transparent);border-radius:50%;place-items:center;animation:1.2s ease-in-out infinite alternate item-spin;display:grid}.game-item svg{width:20px;height:20px;overflow:visible}.mail-game .game-effect{border-color:var(--item,var(--gold));gap:4px}.mail-game .game-effect i{color:var(--item);display:inline-grid}.mail-game .game-effect svg{width:16px;height:16px}.monster-layer.is-frozen .monster svg,.monster-layer.is-frozen .ship svg,.monster-layer.is-frozen .s-light{animation-play-state:paused}.monster-layer.is-frozen .monster svg,.monster-layer.is-frozen .ship svg{filter:saturate(0)brightness(1.9)opacity(.6);transition:filter .2s}.game-item.is-taken span{animation:.3s ease-out forwards item-taken}@keyframes item-spin{0%{rotate:-12deg}to{rotate:12deg}}@keyframes item-taken{to{opacity:0;scale:1.8}}.monster-layer{z-index:25;pointer-events:none;position:fixed;inset:0;overflow:hidden}.monster{pointer-events:none;place-items:center;width:54px;height:54px;display:grid;position:absolute;top:-27px;left:-27px}.monster svg{transform-origin:50% 90%;width:48px;height:48px;animation:.4s ease-out both monster-drop;overflow:visible}.monster[data-state=drop] svg{animation:.4s ease-out both monster-drop,.5s ease-in-out .4s infinite alternate monster-sway}.monster[data-state=up] svg{animation:.22s ease-in-out infinite alternate monster-sway}.monster[data-state=grab] svg{animation:.3s ease-out monster-hop}.monster.is-down,.monster.is-in{pointer-events:none}.monster.is-down svg{animation:.4s ease-out forwards monster-down}.monster.is-in svg{animation:.25s ease-in forwards monster-in}.m-body{fill:var(--ink)}.m-eye{fill:var(--paper)}.m-pupil{fill:var(--ink)}.ch-carry{color:var(--accent);white-space:pre;pointer-events:none;text-shadow:0 0 3px var(--paper), 0 0 3px var(--paper), 0 0 6px var(--paper);transform-origin:50% 100%;font-weight:600;line-height:1;animation:.3s cubic-bezier(.2,.9,.3,1.3) ch-grab,.28s ease-in-out .3s infinite alternate ch-bob;position:absolute;bottom:calc(100% - 10px);left:50%;translate:-50%}.monster-layer.is-wide .ch-carry{bottom:calc(100% - 6px)}@keyframes ch-grab{0%{opacity:.3;transform:translateY(26px)scale(.4)}}@keyframes ch-bob{0%{rotate:-7deg}to{rotate:7deg}}.steal-ring{border:3px solid var(--accent);pointer-events:none;border-radius:50%;width:40px;height:40px;margin:-20px 0 0 -20px;animation:.45s ease-out forwards bomb-ring;position:absolute}.ch-fly{color:var(--accent);white-space:pre;pointer-events:none;position:absolute}.ship{pointer-events:none;width:150px;position:absolute;top:-33px;left:-75px}@media (max-width:640px){.ship{width:112px;top:-25px;left:-56px}}.ship svg{width:100%;height:auto;animation:1.6s ease-in-out infinite alternate ship-bob;display:block;overflow:visible}.ship.is-damaged svg{animation:1.6s ease-in-out infinite alternate ship-bob,.4s ease-out ship-hit}.ship.is-down{pointer-events:none}.ship.is-down svg{animation:1.3s ease-in forwards ship-down}.ship.is-leaving svg{animation:1s ease-in forwards ship-leave}.s-body{fill:var(--ink)}.s-dome{fill:var(--gold-soft);stroke:var(--gold);stroke-width:1.5px}.s-rim{fill:none;stroke:var(--gold);stroke-width:1.5px}.s-light{fill:var(--gold);animation:.9s steps(2,end) infinite ship-light}.s-light:nth-of-type(2n){animation-delay:.45s}.s-hatch{fill:var(--wine-deep);transition:fill .2s}.ship.is-opening .s-hatch{fill:var(--gold-soft)}.ship.is-damaged .s-body{animation:.3s ease-out ship-flash}.ship.is-arming .s-hatch{fill:var(--accent);animation:.15s steps(2,end) infinite ship-light}.ship[data-stage="1"] .s-light{animation-duration:.5s}.ship[data-stage="2"] .s-light{fill:var(--accent);animation-duration:.28s}.ship[data-stage="2"] .s-rim{stroke:var(--accent)}.monster-layer.is-wide .monster{width:70px;height:70px;top:-35px;left:-35px}.monster-layer.is-wide .monster svg{width:62px;height:62px}.monster-layer.is-wide .ship{width:196px;top:-43px;left:-98px}.bomb{pointer-events:none;width:26px;height:26px;position:absolute;top:-13px;left:-13px}.bomb svg{width:100%;height:100%;animation:.9s ease-in-out infinite alternate bomb-spin;display:block;overflow:visible}.b-body{fill:var(--ink);stroke:var(--paper);stroke-width:2.6px;paint-order:stroke}.monster-layer.is-wide .bomb{width:34px;height:34px;top:-17px;left:-17px}.b-shine{fill:var(--paper);opacity:.55}.b-cap{fill:var(--gold-ink)}.b-fuse{fill:none;stroke:var(--gold-ink);stroke-width:1.6px;stroke-linecap:round}.b-spark{fill:var(--accent);animation:.18s steps(2,end) infinite ship-light}.bomb.is-boom svg{animation:.35s ease-out forwards bomb-boom}.bomb.is-boom:after{content:"";border:3px solid var(--gold-soft);border-radius:50%;animation:.4s ease-out forwards bomb-ring;position:absolute;inset:-8px}.monster-layer.is-frozen .bomb svg,.monster-layer.is-frozen .b-spark{animation-play-state:paused}.monster-layer.is-frozen .bomb svg{filter:saturate(0)brightness(1.9)opacity(.6)}@keyframes bomb-spin{0%{rotate:-14deg}to{rotate:14deg}}@keyframes bomb-boom{to{opacity:0;scale:1.8}}@keyframes bomb-ring{0%{opacity:1;scale:.4}to{opacity:0;scale:2.2}}@media (prefers-reduced-motion:reduce){.mail-game{display:none}}@keyframes monster-drop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}@keyframes monster-sway{0%{rotate:-8deg}to{rotate:8deg}}@keyframes monster-hop{50%{transform:translateY(-7px)}}@keyframes monster-shake{0%{transform:translate(-2px)rotate(-4deg)}to{transform:translate(2px)rotate(4deg)}}@keyframes monster-down{to{opacity:0;filter:blur(3px);transform:scale(1.5)}}@keyframes monster-in{to{opacity:0;transform:translateY(-16px)scale(.2)}}@keyframes ship-bob{to{translate:0 -5px}}@keyframes ship-flash{0%{fill:var(--accent)}}@keyframes ship-light{50%{opacity:.25}}@keyframes ship-hit{25%{transform:translate(-7px)rotate(-5deg)}60%{transform:translate(6px)rotate(3deg)}}@keyframes ship-down{20%{transform:rotate(-8deg)}to{opacity:0;transform:translateY(280px)rotate(28deg)}}@keyframes ship-leave{to{opacity:0;transform:translateY(-220px)}}.fireworks{z-index:20;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.contact-list a{overflow-wrap:anywhere;align-items:center;min-height:44px;display:inline-flex}.empty{color:var(--muted);font-size:14px}.count-note{z-index:50;background:var(--wine);color:#fff;letter-spacing:.06em;max-width:calc(100vw - 32px);animation:hero-in .5s var(--ease);border-radius:2px;margin:0;padding:10px 20px;font-size:14px;position:fixed;bottom:20px;left:50%;translate:-50%;box-shadow:0 12px 24px -16px #00000080}.mark path{transform-box:view-box;transform-origin:256px 332px}.brand:hover,.brand:focus-visible{--d:1.1s}.brand:hover .lt-c,.brand:focus-visible .lt-c{animation:lt-rise calc(var(--d) * .5) cubic-bezier(.2, .8, .2, 1) both}.brand:hover .lt-l,.brand:focus-visible .lt-l{animation:lt-open-l calc(var(--d) * .5) cubic-bezier(.2, .8, .2, 1) calc(var(--d) * .2) both}.brand:hover .lt-r,.brand:focus-visible .lt-r{animation:lt-open-r calc(var(--d) * .5) cubic-bezier(.2, .8, .2, 1) calc(var(--d) * .2) both}.brand:hover .lt-s,.brand:focus-visible .lt-s{animation:lt-draw calc(var(--d) * .45) ease-out calc(var(--d) * var(--t,.45)) both}.lt-w1{--t:.12}.lt-w2{--t:.3}.lt-w3{--t:.5}.lt-ol,.lt-or{--t:.48}@keyframes lt-rise{0%{opacity:0;transform:scale(.3,0)}}@keyframes lt-open-l{0%{opacity:0;transform:rotate(38deg)scale(.35)}}@keyframes lt-open-r{0%{opacity:0;transform:rotate(-38deg)scale(.35)}}@keyframes lt-draw{0%{stroke-dasharray:1;stroke-dashoffset:1px;opacity:0}12%{opacity:1}to{stroke-dasharray:1;stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.hero-text>*,.ribbon,.frame,.frame-sheen i,.pin i,.brand .mark path,.hero-emblem,.hero-emblem .mark path{animation:none!important}.pin,.ribbon{cursor:default}.pin i,.btn{transition:none}}@media print{:root{--paper:#fff;--ink:#000;--muted:#333;--line:#bbb;--head:#000;--accent:#000;--gold-ink:#333}body{color:#000;background:#fff;font-size:11pt;line-height:1.7}.site-header .nav,.site-footer,.ribbon-slot,.frame-box,.hero-emblem,.hero-water,.roll-cord-slot,.stage,.lightbox,.count-note,.work-nav,.filter,.hero-actions,.work-hero .btn{display:none!important}.hero,.work-hero{color:#000;margin-top:0;padding:0 0 12pt}.hero:before,.work-hero:before{display:none}.hero-text,.work-hero-text{min-height:0;margin-left:0!important}.hero-org .org-name,.work-hero h1{border-color:#000}.name-part .latin,.work-spec dt,.hero-statement,.work-summary{color:#333!important}.hero-text>*{animation:none!important}.cv-block,.work-part,.timeline li,.pubs li,.points li,.piece{break-inside:avoid}a{text-decoration:none!important}.pub-links a:after{content:" " attr(href);color:#333;font-size:9pt}.wrap{width:auto;min-height:0}}
