@property --active{syntax:"<number>";inherits:true;initial-value:0}:root{--bg-primary:#f8f1e6;--bg-secondary:#fff9f1;--bg-tertiary:#f3e6d4;--primary:#e8c16b;--primary-dark:#d9a441;--accent:#e7b8a3;--accent-soft:#f2d6dc;--sage:#9fae8c;--olive:#7e8a6b;--moss:#68765b;--text-primary:#3c2a22;--text-secondary:#7a5a46;--text-muted:#9a8473;--cream-ink:#fff6e6;--border:rgba(60,42,34,.12);--font-display:"Cormorant Garamond","Playfair Display",Georgia,serif;--font-body:"Inter","Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;--font-script:"Caveat","Marck Script","Segoe Script",cursive;--font-jp:"Zen Old Mincho","Noto Serif JP","Yu Mincho",serif;--ease:cubic-bezier(0.22,1,0.36,1);--t-slow:0.6s;--t-mid:1s;--t-bloom:1.2s}*,:after,:before{box-sizing:border-box}body,html{margin:0;min-height:100%;background:#2a1a10;color:var(--text-primary);font-family:var(--font-body);font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{text-decoration:none}a,button{color:inherit}button{font:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.stage{--R:max(72vw,122vh);--R2:150vmax;position:fixed;background:#2a1a10}.room,.stage{inset:0;overflow:hidden}.room{position:absolute}.room__img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:filter var(--t-bloom) var(--ease),transform var(--t-bloom) var(--ease)}.stage:not([data-view=home]) .room__img{filter:blur(7px) brightness(.46) saturate(.85);transform:scale(1.05)}.room__shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(38,20,6,.42),rgba(38,20,6,0) 24%),linear-gradient(90deg,rgba(38,20,6,.34),rgba(38,20,6,0) 30%),linear-gradient(270deg,rgba(38,20,6,.3),rgba(38,20,6,0) 26%)}.ui-left,.ui-right{position:absolute;z-index:3;display:flex;flex-direction:column;color:var(--cream-ink);text-shadow:0 1px 14px rgba(40,20,4,.55)}.ui-left{z-index:8;left:clamp(26px,4.8vw,92px);top:29vh;align-items:flex-start;gap:30px}.ui-right{right:clamp(26px,4.4vw,84px);top:19vh;align-items:center;gap:22px}.jp{writing-mode:vertical-rl;font-family:var(--font-jp);font-size:clamp(1rem,1.42vw,1.5rem);letter-spacing:.34em;line-height:1.9}.jp p{margin:0}.jp p+p{-webkit-margin-before:.5em;margin-block-start:.5em}.rule{display:block;width:28px;height:1px;background:currentColor;opacity:.75}.rule--v{width:1px;height:30px}.motto,.tag{margin:0;font-size:.66rem;letter-spacing:.32em;line-height:2.2;text-transform:uppercase}.motto{list-style:none;padding:0;text-align:center;font-weight:500}.kana{margin:0;writing-mode:vertical-rl;font-family:var(--font-jp);font-weight:400;font-size:clamp(2.2rem,4.5vw,4.7rem);letter-spacing:.24em;line-height:1}.home-only{transition:opacity var(--t-mid) var(--ease),visibility 0s}.stage:not([data-view=home]) .home-only{opacity:0;visibility:hidden;transition:opacity var(--t-slow) var(--ease),visibility 0s var(--t-slow)}.ui-left{transition:opacity var(--t-bloom) var(--ease)}.stage:not([data-view=home]) .ui-left{opacity:.85}.socials{position:absolute;z-index:3;right:clamp(26px,5vw,92px);bottom:clamp(24px,6vh,64px);display:flex;gap:22px;color:var(--cream-ink)}.socials a{display:grid;place-items:center;width:30px;height:30px;filter:drop-shadow(0 1px 8px rgba(40,20,4,.55));transition:transform var(--t-slow) var(--ease)}.socials a:hover{transform:translateY(-4px)}.socials svg{width:26px;height:26px}.cue{position:absolute;z-index:3;left:50%;bottom:clamp(18px,3.6vh,38px);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:12px;padding:8px 14px;background:none;border:0;cursor:pointer;color:var(--cream-ink);font-size:.64rem;letter-spacing:.36em;text-transform:uppercase;text-shadow:0 1px 10px rgba(40,20,4,.55)}.cue__mouse{width:24px;height:40px;border:1.5px solid;border-radius:14px;display:grid;place-items:start center;padding-top:7px}.cue__dot{width:3px;height:8px;border-radius:2px;background:currentColor;animation:cue 2.8s var(--ease) infinite}@keyframes cue{0%,to{transform:translateY(0);opacity:1}55%{transform:translateY(10px);opacity:.25}}.header{position:absolute;z-index:20;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:clamp(20px,4.6vh,46px) clamp(24px,4.8vw,92px);color:var(--cream-ink);pointer-events:none}.header>*{pointer-events:auto}.logo{font-weight:500;font-size:1.32rem;letter-spacing:.72em;text-shadow:0 1px 14px rgba(40,20,4,.5);transition:color var(--t-mid) var(--ease) .3s}.logo,.nav{color:var(--cream-ink)}.nav{display:flex;align-items:center;gap:clamp(20px,2.7vw,46px);text-shadow:0 1px 12px rgba(40,20,4,.45);transition:color var(--t-mid) var(--ease) .35s,text-shadow var(--t-mid) var(--ease) .35s}[data-view=about] .nav{color:var(--text-primary);text-shadow:none}.nav__link{position:relative;padding:6px 0;font-size:.7rem;letter-spacing:.3em;text-transform:uppercase;opacity:.8;transition:opacity var(--t-slow) var(--ease)}.nav__link:after{content:"";position:absolute;left:0;right:.3em;bottom:-2px;height:1px;background:var(--primary-dark);transform:scaleX(0);transform-origin:left;transition:transform var(--t-slow) var(--ease)}.nav__link:hover{opacity:1}.nav__link[aria-current=page]{opacity:1;font-weight:500}.nav__link:hover:after,.nav__link[aria-current=page]:after{transform:scaleX(1)}.cta{padding:15px 26px;border:1.5px solid;font-size:.7rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;background:transparent;transition:transform var(--t-slow) var(--ease),box-shadow var(--t-slow) var(--ease),background-color var(--t-slow) var(--ease)}.cta:hover{transform:translateY(-4px);box-shadow:0 10px 30px rgba(0,0,0,.08);background:rgba(255,246,230,.12)}[data-view=about] .cta:hover{background:hsla(41,73%,66%,.16)}.about{position:absolute;inset:0;z-index:5;color:var(--text-primary);background:radial-gradient(90% 80% at 75% 100%,#fff2dc 0,rgba(255,242,220,0) 62%),var(--bg-secondary);-webkit-clip-path:circle(0 at 100% 100%);clip-path:circle(0 at 100% 100%);visibility:hidden;transition:visibility 0s var(--t-bloom),-webkit-clip-path var(--t-bloom) var(--ease);transition:clip-path var(--t-bloom) var(--ease),visibility 0s var(--t-bloom);transition:clip-path var(--t-bloom) var(--ease),visibility 0s var(--t-bloom),-webkit-clip-path var(--t-bloom) var(--ease)}.stage:not([data-view=home]) .about{-webkit-clip-path:circle(var(--R) at 100% 100%);clip-path:circle(var(--R) at 100% 100%);visibility:visible;transition:visibility 0s,-webkit-clip-path var(--t-bloom) var(--ease);transition:clip-path var(--t-bloom) var(--ease),visibility 0s;transition:clip-path var(--t-bloom) var(--ease),visibility 0s,-webkit-clip-path var(--t-bloom) var(--ease)}.ring{position:absolute;z-index:6;right:0;bottom:0;width:0;height:0;border:2px solid var(--primary-dark);border-radius:50%;transform:translate(50%,50%);opacity:0;pointer-events:none;transition:width var(--t-bloom) var(--ease),height var(--t-bloom) var(--ease),opacity var(--t-mid) var(--ease)}[data-view=about] .ring:not(.ring--2){width:calc(var(--R) * 2);height:calc(var(--R) * 2);opacity:.85}.about:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.55;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .45  0 0 0 0 .33  0 0 0 0 .2  0 0 0 .1 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.about__scroll{position:absolute;inset:0;z-index:2;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.about__scroll::-webkit-scrollbar{display:none}.about__content{position:relative;z-index:2;display:flex;flex-direction:column;min-height:100%;padding:clamp(96px,14vh,170px) 0 clamp(24px,4vh,48px) 49vw}.about__kicker{margin:0 0 2px;font-family:var(--font-script);font-size:clamp(1.7rem,2.3vw,2.5rem);line-height:1;color:var(--primary-dark)}.about__title{max-width:34vw;margin:0 0 clamp(12px,2.2vh,24px);font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,2.9vw,3.6rem);line-height:1.1;letter-spacing:-.005em}.about__title em{font-style:italic;font-weight:500;color:var(--primary-dark)}.about__bio{max-width:25vw;margin:0 0 clamp(18px,3.4vh,40px);font-size:clamp(.82rem,.9vw,.98rem);line-height:1.75}.about__bio strong{font-weight:500}.facts{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(14px,2.6vh,28px) 0;gap:clamp(14px,2.6vh,28px) 0;max-width:19vw;margin:0;padding:0;list-style:none}.fact{padding-right:clamp(14px,1.6vw,28px)}.fact:nth-child(odd){border-right:1px solid var(--border)}.fact:nth-child(2n){padding-left:clamp(14px,1.8vw,32px)}.fact svg{display:block;width:28px;height:28px;margin-bottom:8px;color:var(--text-primary)}.fact h3{margin:0 0 6px;font-size:.68rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase}.fact p{margin:0;font-size:.74rem;line-height:1.55;color:var(--text-secondary)}.about__quote{max-width:15vw;margin:clamp(16px,3vh,32px) 0 0;font-family:var(--font-script);font-size:clamp(1.3rem,1.65vw,1.85rem);line-height:1.15;color:var(--primary-dark)}.about__quote:after{content:"";display:block;width:22px;height:1px;margin-top:10px;background:var(--primary-dark)}.stats{display:flex;margin:clamp(10px,1.8vh,20px) 0 0;padding:0;list-style:none}.stat{display:flex;flex-direction:column;gap:4px;padding:0 clamp(12px,1.4vw,26px)}.stat:first-child{padding-left:0}.stat+.stat{border-left:1.5px solid var(--primary)}.stat strong{font-family:var(--font-display);font-weight:600;font-size:clamp(1.5rem,1.9vw,2.1rem);line-height:1}.stat span{font-size:.56rem;letter-spacing:.22em;text-transform:uppercase;color:var(--primary-dark)}.portrait{margin:0;position:fixed;z-index:1;right:0;bottom:0;width:min(31vw,58vh);aspect-ratio:1;overflow:hidden;border-radius:100% 0 0 0;border-top:2px solid var(--primary-dark);border-left:2px solid var(--primary-dark);background:var(--bg-tertiary)}.portrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:right bottom}.deco{position:absolute;z-index:1;pointer-events:none}.sprig{overflow:visible}.deco--sprig-low{left:calc(100vw - var(--R) - 14px);bottom:0;width:clamp(120px,11vw,200px);height:36vh}.deco--sprig-high{left:calc(100vw - var(--R) + 5vw);top:17vh;width:clamp(90px,8vw,150px);height:22vh;transform:rotate(38deg)}.deco--cat{right:clamp(24px,4.4vw,84px);top:clamp(84px,15vh,160px);width:clamp(120px,12vw,210px);color:var(--primary-dark)}.deco--cat svg{display:block;width:34%;margin-left:auto}.deco--cat p{margin:4px 0 0;padding-right:22%;font-family:var(--font-script);font-size:clamp(1rem,1.15vw,1.3rem);line-height:1;text-align:center;transform:rotate(-9deg)}.petal{position:absolute;z-index:1;width:24px;height:15px;border-radius:70% 30% 70% 30%;background:var(--accent-soft);opacity:.9;pointer-events:none;animation:drift 16s ease-in-out infinite alternate}.petal:nth-child(3n){background:var(--accent);opacity:.7}@keyframes drift{0%{transform:translate(0) rotate(var(--r,0deg))}to{transform:translate(14px,18px) rotate(calc(var(--r, 0deg) + 16deg))}}.soon{display:grid;place-content:center;grid-gap:14px;gap:14px;min-height:100vh;padding:32px;text-align:center;background:var(--bg-primary)}.soon__script{font-family:var(--font-script);font-size:2rem;color:var(--primary-dark)}.soon h1{margin:0;font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,4vw,3.4rem);line-height:1.1}.soon a{justify-self:center;margin-top:12px;padding:14px 26px;border:1.5px solid var(--text-primary);font-size:.7rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;transition:transform var(--t-slow) var(--ease),box-shadow var(--t-slow) var(--ease)}.soon a:hover{transform:translateY(-4px);box-shadow:0 10px 30px rgba(0,0,0,.08)}@media (max-width:1100px){.about__title{max-width:40vw}.about__bio{max-width:34vw}.facts{max-width:30vw}.about__content{padding-left:44vw}}@media (max-width:900px){.stage{--R:150vmax}.header{flex-wrap:wrap;gap:14px}.logo{font-size:1.1rem;letter-spacing:.5em}[data-view=about] .logo{color:var(--text-primary);text-shadow:none}.nav{order:3;width:100%;justify-content:space-between;gap:8px}.nav__link{font-size:.62rem;letter-spacing:.2em}.cta,.ui-right{display:none}.stage:not([data-view=home]) .ui-left{opacity:0;visibility:hidden}.ui-left{top:24vh}.about__content{padding:132px 24px 32px}.about__bio,.about__title,.facts{max-width:none}.about__title{font-size:clamp(2rem,8vw,2.8rem)}.about__bio{font-size:.92rem}.fact:nth-child(2n){padding-left:18px}.portrait{position:relative;right:auto;bottom:auto;width:min(88vw,420px);margin:36px -24px -32px auto}.deco--cat,.deco--sprig-high,.deco--sprig-low{display:none}.about__quote{max-width:none}}@media (min-width:901px) and (max-height:800px){.about__content{padding-top:84px}.about__title{font-size:clamp(1.8rem,2.6vw,3rem);margin-bottom:10px}.about__bio{line-height:1.6;margin-bottom:14px}.facts{gap:10px 0}.fact svg{width:24px;height:24px;margin-bottom:5px}.fact h3{margin-bottom:3px}.about__quote{margin-top:12px}.stats{margin-top:8px}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}}.projects{position:absolute;inset:0;z-index:7;overflow:hidden;color:var(--cream-ink);background:#24160c;-webkit-clip-path:circle(0 at 100% 100%);clip-path:circle(0 at 100% 100%);visibility:hidden;transition:visibility 0s var(--t-bloom),-webkit-clip-path var(--t-bloom) var(--ease);transition:clip-path var(--t-bloom) var(--ease),visibility 0s var(--t-bloom);transition:clip-path var(--t-bloom) var(--ease),visibility 0s var(--t-bloom),-webkit-clip-path var(--t-bloom) var(--ease)}[data-view=projects] .projects{-webkit-clip-path:circle(var(--R2) at 100% 100%);clip-path:circle(var(--R2) at 100% 100%);visibility:visible;transition:visibility 0s,-webkit-clip-path var(--t-bloom) var(--ease);transition:clip-path var(--t-bloom) var(--ease),visibility 0s;transition:clip-path var(--t-bloom) var(--ease),visibility 0s,-webkit-clip-path var(--t-bloom) var(--ease)}.ring--2{z-index:9}[data-view=projects] .ring:not(.ring--2){width:calc(var(--R) * 2);height:calc(var(--R) * 2);opacity:0}[data-view=projects] .ring--2{width:calc(var(--R2) * 2);height:calc(var(--R2) * 2);opacity:.85}.projects__bg{position:absolute;inset:0;overflow:hidden}.projects__bg img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.02);transform-origin:54% 62%;filter:blur(2px) brightness(.9);transition:transform 2.4s var(--ease),filter 2.4s var(--ease)}[data-view=projects] .projects__bg img{transform:scale(1.5);filter:blur(6px) brightness(.36) saturate(.85) sepia(.3)}.projects:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 100% 100%,hsla(41,73%,66%,.26) 0,hsla(41,73%,66%,0) 52%),linear-gradient(90deg,rgba(24,12,4,.5),rgba(24,12,4,0) 55%)}.projects__intro,.projects__ja,.projects__note{position:absolute;z-index:3}.projects__intro{left:clamp(190px,17vw,340px);top:26vh;width:min(25vw,400px)}.projects__intro>*,.projects__ja,.projects__note{opacity:0;transform:translateY(14px);transition:opacity var(--t-slow) var(--ease),transform var(--t-slow) var(--ease)}[data-view=projects] .projects__intro>*,[data-view=projects] .projects__ja,[data-view=projects] .projects__note{opacity:1;transform:none;transition:opacity var(--t-mid) var(--ease),transform var(--t-mid) var(--ease);transition-delay:.55s}[data-view=projects] .projects__intro>:nth-child(2){transition-delay:.7s}[data-view=projects] .projects__intro>:nth-child(3){transition-delay:.85s}[data-view=projects] .projects__intro>:nth-child(4){transition-delay:1s}.projects__kicker{margin:0 0 2px;font-family:var(--font-script);font-size:clamp(1.7rem,2.3vw,2.5rem);line-height:1;color:var(--primary)}.projects__title{margin:0 0 clamp(14px,2.4vh,26px);font-family:var(--font-display);font-weight:600;font-size:clamp(1.9rem,2.8vw,3.4rem);line-height:1.1}.projects__lede{margin:0;max-width:22em;font-size:clamp(.82rem,.9vw,.98rem);line-height:1.75;color:rgba(255,246,230,.82)}.projects__hint{display:flex;align-items:center;gap:14px;margin:clamp(20px,4vh,40px) 0 0;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:var(--primary)}.projects__hint-line{width:34px;height:1px;background:currentColor}.projects__ja{left:clamp(190px,17vw,340px);bottom:clamp(28px,7vh,72px);writing-mode:vertical-rl;font-family:var(--font-jp);font-size:clamp(.9rem,1.1vw,1.2rem);letter-spacing:.4em;color:rgba(255,246,230,.7)}.projects__note{right:clamp(300px,36vw,640px);bottom:clamp(18px,4vh,44px);margin:0;font-family:var(--font-script);font-size:clamp(1.1rem,1.4vw,1.5rem);color:var(--primary)}.projects__note,[data-view=projects] .projects__note{transform:rotate(-4deg)}.dial{--rd:min(80vh,58vw);--step:13deg;--mid:226deg;--active:calc(var(--idx) - 3.4);position:absolute;z-index:2;right:0;bottom:0;width:0;height:0;transition:--active 1.1s var(--ease)}[data-view=projects] .dial{--active:var(--idx);transition-duration:1.7s}.dial__books{margin:0;padding:0;list-style:none}.slot{--d:calc(var(--i) - var(--active));--abs:max(var(--d),var(--d) * -1);--ang:calc(var(--mid) + var(--d) * var(--step));position:absolute;left:calc(cos(var(--ang)) * var(--rd));top:calc(sin(var(--ang)) * var(--rd));opacity:clamp(0,min(calc(3.4 - var(--abs)),calc((3.5 - var(--d)) / .6)),1)}.slot.is-far{pointer-events:none}.book{position:absolute;left:0;top:0;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;width:clamp(88px,8.4vw,140px);aspect-ratio:3/4.1;padding:12px 10px 10px 22px;border:0;border-radius:2px 6px 6px 2px;background:var(--cover);color:var(--ink);text-align:left;cursor:pointer;translate:-50% -50%;scale:clamp(.84,calc(1.24 - var(--abs) * .13),1.24);transform:perspective(700px) rotateY(0deg) translateZ(0);box-shadow:0 14px 30px rgba(10,4,0,.4),inset -3px 0 0 hsla(0,0%,100%,.28);transition:transform var(--t-slow) var(--ease),box-shadow var(--t-slow) var(--ease)}.book:before{content:"";inset:0 auto 0 0;width:11px;border-radius:2px 0 0 2px;box-shadow:inset -2px 0 0 rgba(0,0,0,.15)}.book:before,.book__ribbon{position:absolute;background:var(--spine)}.book__ribbon{top:-1px;right:14px;width:8px;height:26%;-webkit-clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%);clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%)}.book__num{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(1.4rem,2.2vw,2.3rem);line-height:1;opacity:.85}.book__meta{display:flex;flex-direction:column;gap:4px}.book__title{font-family:var(--font-display);font-weight:600;font-size:clamp(.95rem,1.25vw,1.35rem);line-height:1.05}.book__kind{font-size:.56rem;letter-spacing:.22em;opacity:.7}.book:focus-visible,.book:hover{transform:perspective(700px) translateY(-4px) rotateY(-8deg) translateZ(20px);box-shadow:0 22px 44px rgba(10,4,0,.5),inset -3px 0 0 hsla(0,0%,100%,.28)}.slot.is-active .book{transform:perspective(700px) rotateY(-12deg) translateZ(16px);outline:1.5px solid hsla(41,73%,66%,.85);outline-offset:7px}.dial__line,.dial__ticks{--out:calc(var(--rd) + 180px);position:absolute;width:calc(var(--out) * 2);height:calc(var(--out) * 2);right:calc(var(--out) * -1);bottom:calc(var(--out) * -1);border-radius:50%;pointer-events:none}.dial__line{--out:calc(var(--rd) + 156px);border:1px solid hsla(41,73%,66%,.4)}.dial__ticks{transform:rotate(calc(var(--active) * var(--step) * -1))}.dial__ticks--minor{background:repeating-conic-gradient(from 0deg,hsla(41,73%,66%,.32) 0 .25deg,transparent .25deg 2.6deg);-webkit-mask-image:radial-gradient(closest-side,transparent calc(100% - 9px),#000 calc(100% - 9px));mask-image:radial-gradient(closest-side,transparent calc(100% - 9px),#000 calc(100% - 9px))}.dial__ticks--major{background:repeating-conic-gradient(from 0deg,hsla(41,73%,66%,.9) 0 .35deg,transparent .35deg 13deg);-webkit-mask-image:radial-gradient(closest-side,transparent calc(100% - 20px),#000 calc(100% - 20px));mask-image:radial-gradient(closest-side,transparent calc(100% - 20px),#000 calc(100% - 20px))}.detail-wrap{position:absolute;z-index:3;right:clamp(24px,5vw,92px);bottom:clamp(24px,4.5vh,56px);width:min(29vw,450px);opacity:0;transform:translateY(16px);transition:opacity var(--t-slow) var(--ease),transform var(--t-slow) var(--ease)}[data-view=projects] .detail-wrap{opacity:1;transform:none;transition:opacity var(--t-mid) var(--ease) .6s,transform var(--t-mid) var(--ease) .6s}.detail{position:relative;padding:clamp(18px,2.2vw,34px) clamp(18px,2.2vw,34px) clamp(18px,2.2vw,30px) clamp(26px,2.8vw,44px);border-radius:3px 10px 10px 3px;color:var(--text-primary);background:var(--bg-secondary);box-shadow:0 26px 60px rgba(10,4,0,.5);animation:page-in .9s var(--ease) both}.detail:before{content:"";position:absolute;inset:0 auto 0 0;width:18px;border-radius:3px 0 0 3px;background:linear-gradient(90deg,rgba(60,42,34,.16),rgba(60,42,34,0))}@keyframes page-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.detail__no{margin:0 0 4px;font-family:var(--font-script);font-size:clamp(1.15rem,1.4vw,1.5rem);line-height:1;color:var(--primary-dark)}.detail__no span{color:var(--text-muted)}.detail__title{margin:0;font-family:var(--font-display);font-weight:700;font-size:clamp(1.7rem,2.4vw,2.8rem);line-height:1.05}.detail__kind{margin:6px 0 12px;font-size:.78rem;color:var(--text-secondary)}.detail__blurb{margin:0 0 14px;font-size:clamp(.82rem,.9vw,.95rem);line-height:1.7}.detail__stack{display:flex;flex-wrap:wrap;gap:6px 8px;margin:0 0 16px;padding:0;list-style:none}.detail__stack li{padding:4px 10px;border:1px solid var(--border);border-radius:2px;font-size:.72rem;color:var(--text-secondary)}.detail__links{display:flex;gap:22px;margin:0}.detail__links a{padding-bottom:3px;border-bottom:1px solid var(--primary-dark);font-size:.72rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;transition:transform var(--t-slow) var(--ease),border-color var(--t-slow) var(--ease)}.detail__links a:hover{transform:translateY(-3px);border-color:var(--text-primary)}.detail__nav{display:flex;justify-content:flex-end;gap:10px;margin-top:14px}.detail__nav button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1.5px solid rgba(255,246,230,.7);border-radius:50%;background:transparent;color:var(--cream-ink);cursor:pointer;transition:transform var(--t-slow) var(--ease),background-color var(--t-slow) var(--ease),opacity var(--t-slow) var(--ease)}.detail__nav button:hover:not(:disabled){transform:translateY(-3px);background:rgba(255,246,230,.12)}.detail__nav button:disabled{opacity:.35;cursor:default}.detail__nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@media (max-width:900px){.dial{--rd:78vw;--step:17deg}.book{width:25vw}.projects__intro,.projects__ja,.projects__note{display:none}.detail-wrap{top:112px;bottom:auto;left:20px;right:20px;width:auto}.detail__blurb{font-size:.85rem;line-height:1.6}.detail__nav{display:none}}@media (min-width:901px) and (max-height:800px){.detail-wrap{bottom:3vh;width:min(26vw,400px)}.detail{padding:16px 18px 14px 26px}.detail__title{font-size:1.6rem}.detail__kind{margin:4px 0 8px}.detail__blurb{font-size:.78rem;line-height:1.55}.detail__blurb,.detail__stack{margin-bottom:10px}.detail__nav{margin-top:10px}.book{width:7.6vw}}.stage{--R3:150vmax}[data-view=contact] .projects{-webkit-clip-path:circle(var(--R2) at 100% 100%);clip-path:circle(var(--R2) at 100% 100%)}[data-view=contact] .ring--2{width:calc(var(--R2) * 2);height:calc(var(--R2) * 2);opacity:0}[data-view=contact] .projects__bg img{transform:scale(1.5);filter:blur(6px) brightness(.36) saturate(.85) sepia(.3)}[data-view=contact] .dial{--active:var(--idx);transition-duration:1.7s}[data-view=contact] .detail-wrap,[data-view=contact] .projects__intro>*,[data-view=contact] .projects__ja{opacity:1;transform:none}[data-view=contact] .projects__note{opacity:1;transform:rotate(-4deg)}.night-ring{position:absolute;z-index:9;left:50%;top:38%;width:0;height:0;border:2px solid rgba(196,208,255,.75);border-radius:50%;transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:width var(--t-bloom) var(--ease),height var(--t-bloom) var(--ease),opacity var(--t-mid) var(--ease)}[data-view=contact] .night-ring{width:calc(var(--R3) * 2);height:calc(var(--R3) * 2);opacity:.8}.contact{position:absolute;inset:0;z-index:7;overflow:hidden;color:var(--cream-ink);background:#0d1226;-webkit-clip-path:circle(0 at 50% 38%);clip-path:circle(0 at 50% 38%);visibility:hidden;transition:visibility 0s var(--t-bloom),-webkit-clip-path var(--t-bloom) var(--ease);transition:clip-path var(--t-bloom) var(--ease),visibility 0s var(--t-bloom);transition:clip-path var(--t-bloom) var(--ease),visibility 0s var(--t-bloom),-webkit-clip-path var(--t-bloom) var(--ease)}[data-view=contact] .contact{-webkit-clip-path:circle(var(--R3) at 50% 38%);clip-path:circle(var(--R3) at 50% 38%);visibility:visible;transition:visibility 0s,-webkit-clip-path var(--t-bloom) var(--ease);transition:clip-path var(--t-bloom) var(--ease),visibility 0s;transition:clip-path var(--t-bloom) var(--ease),visibility 0s,-webkit-clip-path var(--t-bloom) var(--ease)}.contact__bg{position:absolute;inset:0;overflow:hidden}.contact__bg img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;transform:scale(1.03);filter:blur(2.5px)}.contact__bg .is-lamp{opacity:0;transition:opacity 1.8s var(--ease)}.contact.is-lit .contact__bg .is-lamp{opacity:1}.contact:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(8,10,26,.66),rgba(8,10,26,.18) 50%,rgba(8,10,26,.5)),linear-gradient(180deg,rgba(8,10,26,.5),rgba(8,10,26,0) 26%)}.contact__scroll{position:absolute;inset:0;z-index:2;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}.contact__scroll::-webkit-scrollbar{display:none}.contact__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,min(35vw,540px));align-items:center;grid-column-gap:clamp(32px,5vw,96px);column-gap:clamp(32px,5vw,96px);min-height:100%;padding:clamp(96px,13vh,150px) clamp(24px,5vw,92px) clamp(28px,5vh,56px) clamp(190px,17vw,340px)}.contact__intro{max-width:26em}.contact__kicker{margin:0 0 2px;font-family:var(--font-script);font-size:clamp(1.7rem,2.3vw,2.5rem);line-height:1;color:var(--primary)}.contact__title{margin:0 0 clamp(14px,2.4vh,26px);font-family:var(--font-display);font-weight:600;font-size:clamp(1.9rem,2.8vw,3.4rem);line-height:1.1}.contact__lede{margin:0;max-width:22em;font-size:clamp(.82rem,.9vw,.98rem);line-height:1.75;color:rgba(255,246,230,.86)}.contact__links{display:grid;grid-gap:10px;gap:10px;margin:clamp(20px,3.4vh,34px) 0 0;padding:0;list-style:none}.contact__links a{display:inline-flex;align-items:center;gap:12px;padding:3px 0;font-size:.86rem;color:var(--cream-ink);border-bottom:1px solid transparent;transition:color var(--t-slow) var(--ease),transform var(--t-slow) var(--ease)}.contact__links a:hover{color:var(--primary);transform:translateX(4px)}.contact__links svg{width:20px;height:20px;flex:none}.contact__lamp{display:inline-flex;align-items:center;gap:10px;margin-top:clamp(20px,3.4vh,34px);padding:8px 0;border:0;background:none;color:rgba(255,246,230,.78);font-size:.78rem;cursor:pointer;transition:color var(--t-slow) var(--ease)}.contact.is-lit .contact__lamp,.contact__lamp:hover{color:var(--primary)}.contact__lamp svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.contact.is-lit .contact__lamp svg path:first-child{fill:hsla(41,73%,66%,.35)}.contact__ja{position:absolute;z-index:3;left:clamp(190px,17vw,340px);bottom:clamp(28px,7vh,72px);margin:0;writing-mode:vertical-rl;font-family:var(--font-jp);font-size:clamp(.9rem,1.1vw,1.2rem);letter-spacing:.4em;color:rgba(255,246,230,.7)}.contact__intro>*,.contact__ja,.letter{opacity:0;transform:translateY(14px);transition:opacity var(--t-slow) var(--ease),transform var(--t-slow) var(--ease)}[data-view=contact] .contact__intro>*,[data-view=contact] .contact__ja,[data-view=contact] .letter{opacity:1;transform:none;transition:opacity var(--t-mid) var(--ease),transform var(--t-mid) var(--ease);transition-delay:.55s}[data-view=contact] .contact__intro>:nth-child(2){transition-delay:.7s}[data-view=contact] .contact__intro>:nth-child(3){transition-delay:.85s}[data-view=contact] .contact__intro>:nth-child(4){transition-delay:1s}[data-view=contact] .contact__intro>:nth-child(5){transition-delay:1.1s}[data-view=contact] .letter{transition-delay:.8s}.letter{position:relative;padding:clamp(22px,2.4vw,38px) clamp(22px,2.4vw,38px) clamp(20px,2.2vw,32px) clamp(30px,3vw,48px);border-radius:3px 10px 10px 3px;color:var(--text-primary);background:var(--bg-secondary);box-shadow:0 26px 60px rgba(4,6,20,.55)}.letter:before{content:"";inset:0 auto 0 0;width:18px;border-radius:3px 0 0 3px;background:linear-gradient(90deg,rgba(60,42,34,.16),rgba(60,42,34,0))}.letter:before,.letter__mark{position:absolute;pointer-events:none}.letter__mark{top:-16px;right:26px;display:grid;place-items:center;width:64px;height:64px;padding:6px;border:1.5px dashed var(--primary-dark);border-radius:50%;background:var(--bg-secondary);color:var(--primary-dark);font-family:var(--font-script);font-size:1rem;line-height:.95;text-align:center;transform:rotate(9deg)}.topics{margin:0 0 clamp(14px,2.2vh,22px);padding:0;border:0}.topics__row{display:flex;flex-wrap:wrap;gap:8px;padding-top:4px}.topic{position:relative}.topic input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.topic span{display:block;padding:6px 12px;border:1px solid var(--border);border-radius:2px;font-size:.76rem;color:var(--text-secondary);transition:background-color var(--t-slow) var(--ease),border-color var(--t-slow) var(--ease),color var(--t-slow) var(--ease)}.topic input:checked+span,.topic:hover span{border-color:var(--primary-dark)}.topic input:checked+span{background:hsla(41,73%,66%,.24);color:var(--text-primary)}.topic input:focus-visible+span{outline:2px solid var(--primary);outline-offset:3px}.field-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 clamp(14px,1.8vw,26px);gap:0 clamp(14px,1.8vw,26px)}.field{margin:0 0 clamp(14px,2.2vh,22px)}.field__label{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:0;margin-bottom:2px;font-size:.78rem;font-weight:500;color:var(--text-secondary)}.field__err{font-weight:400;color:#a4442f}.field input,.field textarea{display:block;width:100%;padding:8px 0 7px;border:0;border-bottom:1px solid rgba(60,42,34,.3);border-radius:0;background:transparent;font:inherit;font-size:.95rem;color:var(--text-primary);transition:border-color var(--t-slow) var(--ease),box-shadow var(--t-slow) var(--ease)}.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--primary-dark);box-shadow:0 1px 0 var(--primary-dark)}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-bottom-color:#a4442f;box-shadow:0 1px 0 #a4442f}.field input:disabled,.field textarea:disabled{opacity:.6}.field textarea{min-height:8.75rem;padding-top:.35rem;line-height:1.75rem;resize:vertical;background-image:repeating-linear-gradient(transparent 0 1.7rem,rgba(60,42,34,.13) 1.7rem 1.75rem);background-attachment:local}.field ::placeholder{color:var(--text-muted)}.letter__foot{display:flex;align-items:center;gap:18px 22px;flex-wrap:wrap;margin-top:6px}.letter__send{padding:14px 24px;border:1.5px solid var(--text-primary);background:transparent;color:var(--text-primary);font-size:.74rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;transition:transform var(--t-slow) var(--ease),box-shadow var(--t-slow) var(--ease),background-color var(--t-slow) var(--ease)}.letter__send:hover:not(:disabled){transform:translateY(-4px);box-shadow:0 10px 30px rgba(0,0,0,.12);background:hsla(41,73%,66%,.2)}.letter__send:disabled{opacity:.6;cursor:progress}.letter__hint{flex:1 1 10em;margin:0;font-size:.74rem;line-height:1.5;color:var(--text-muted)}.letter__error{margin:16px 0 0;padding:10px 12px;border-left:3px solid #a4442f;background:rgba(164,68,47,.08);font-size:.8rem;line-height:1.55}.letter__error a{border-bottom:1px solid}.letter--done{padding-top:clamp(34px,5vh,56px);padding-bottom:clamp(30px,4.5vh,50px)}.letter__script{margin:0 0 4px;font-family:var(--font-script);font-size:clamp(1.4rem,1.8vw,2rem);line-height:1;color:var(--primary-dark)}.letter__sent-title{margin:0 0 12px;font-family:var(--font-display);font-weight:700;font-size:clamp(1.7rem,2.4vw,2.6rem);line-height:1.05}.letter__sent-text{max-width:24em;margin:0 0 22px;font-size:.92rem;line-height:1.7;color:var(--text-secondary)}.letter__again{padding:0 0 3px;border:0;border-bottom:1px solid var(--primary-dark);background:none;font-size:.78rem;font-weight:500;cursor:pointer;transition:transform var(--t-slow) var(--ease),border-color var(--t-slow) var(--ease)}.letter__again:hover{transform:translateY(-3px);border-color:var(--text-primary)}@media (max-width:1100px){.contact__layout{grid-template-columns:minmax(0,.8fr) minmax(0,1fr);padding-left:clamp(120px,14vw,190px)}.contact__ja{left:clamp(120px,14vw,190px)}}@media (max-width:900px){.contact__layout{grid-template-columns:1fr;align-items:start;row-gap:32px;padding:124px 20px 40px}.contact__intro{max-width:none}.contact__ja{display:none}.field-row{grid-template-columns:1fr}.letter{padding-left:30px}.contact:before{background:linear-gradient(180deg,rgba(8,10,26,.72),rgba(8,10,26,.5))}}@media (min-width:901px) and (max-height:800px){.contact__layout{padding-top:84px}.contact__title{margin-bottom:10px}.contact__lamp,.contact__links{margin-top:14px}.letter{padding-top:20px;padding-bottom:18px}.field textarea{min-height:6.5rem}}