:root{
  --ink:#0D0B1A; --ink2:#1B1733; --paper:#F4F1FF; --paper2:#E9E3FF;
  --tobiko:#FF4D1A; --salmon:#FF9A7B; --wasabi:#C6F432; --lilac:#B9A6FF; --mint:#7FE3D0;
  --bg:var(--paper); --fg:var(--ink); --muted:#5B5677; --line:rgba(13,11,26,.14);
  --heroA:#FFD9CC; --heroB:#D9CCFF; --heroC:#F4F1FF;
  --disp:'Unbounded',system-ui,sans-serif; --body:'Instrument Sans',system-ui,sans-serif;
  --serif:'Instrument Serif',Georgia,serif; --jp:'Zen Kaku Gothic New',sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1);
}
html[data-mode="night"]{
  --bg:#0D0B1A; --fg:#F4F1FF; --muted:#A9A3C9; --line:rgba(244,241,255,.14);
  --heroA:#2A1240; --heroB:#0D0B1A; --heroC:#10233A;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;overflow-x:clip}
body{overflow-x:clip}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:17px;line-height:1.5;transition:background .6s var(--ease),color .6s var(--ease)}
img{display:block;max-width:100%;user-select:none;-webkit-user-drag:none}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
em{font-family:var(--serif);font-style:italic;font-weight:400}
.jp{font-family:var(--jp);font-weight:900}
.kicker{font-family:var(--disp);font-weight:500;font-size:12px;letter-spacing:.02em;text-transform:uppercase;display:inline-flex;gap:10px;align-items:center;padding:8px 14px;border-radius:99px;background:var(--fg);color:var(--bg);margin-bottom:22px}
.h2{font-family:var(--disp);font-weight:800;font-size:clamp(40px,6.4vw,104px);line-height:.92;letter-spacing:-.045em}
.h2 em{font-size:1.08em;letter-spacing:-.02em;color:var(--tobiko)}
.huge{font-family:var(--disp);font-weight:900;font-size:clamp(56px,11vw,190px);line-height:.86;letter-spacing:-.055em}
.huge em{font-weight:400;letter-spacing:-.03em}
.note{color:var(--muted);font-size:15px;max-width:34ch;margin-top:18px}
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;height:58px;padding:0 30px;border-radius:99px;background:var(--tobiko);color:#fff;font-family:var(--disp);font-weight:500;font-size:15px;overflow:hidden;isolation:isolate;will-change:transform}
.btn::before{content:"";position:absolute;inset:0;background:var(--ink);border-radius:inherit;transform:translateY(101%);transition:transform .5s var(--ease);z-index:-1}
.btn:hover::before{transform:none}
html[data-mode="night"] .btn::before{background:var(--wasabi)}
html[data-mode="night"] .btn:hover{color:var(--ink)}
.btn--ghost{background:transparent;color:var(--fg);box-shadow:inset 0 0 0 2px var(--fg)}
.btn--ghost:hover{color:var(--bg)}
.btn--ghost::before{background:var(--fg)}
.btn--small{height:44px;padding:0 20px;font-size:13px}
.btn--block{width:100%}
.pill{height:44px;min-width:44px;padding:0 14px;border-radius:99px;box-shadow:inset 0 0 0 1.5px var(--line);font-family:var(--disp);font-size:13px;font-weight:500;transition:background .3s}
.pill:hover{background:var(--fg);color:var(--bg)}
.pill--wide{padding:0 22px;margin-top:22px}

/* loader */
.loader{position:fixed;inset:0;z-index:100;background:var(--ink);color:var(--paper);display:grid;place-items:center}
.loader__roll{width:120px;animation:spin 2.4s linear infinite}
.loader__count{position:absolute;right:4vw;bottom:3vw;font-family:var(--disp);font-weight:900;font-size:clamp(70px,14vw,220px);line-height:.8;letter-spacing:-.06em;color:var(--tobiko)}
.loader__word{position:absolute;left:4vw;bottom:3vw;display:flex;font-family:var(--disp);font-weight:800;font-size:22px;overflow:hidden}
.loader__word span{display:inline-block;transform:translateY(110%)}
.loader__jp{position:absolute;top:4vw;left:4vw;font-family:var(--jp);font-weight:900;font-size:18px;color:var(--wasabi)}
@keyframes spin{to{transform:rotate(360deg)}}
body.loading{overflow:hidden}

/* cursor */
.cursor{position:fixed;left:0;top:0;z-index:90;pointer-events:none;width:80px;height:80px;margin:-40px 0 0 -40px;display:none}
.has-cursor .cursor{display:block}
.has-cursor,.has-cursor a,.has-cursor button{cursor:none}
.chop{width:80px;height:80px;overflow:visible;fill:var(--fg);transition:fill .4s}
.chop g{transition:transform .25s var(--ease);transform-origin:40px 56px}
.cursor.pinch .chop__a{transform:rotate(7deg)}
.cursor.pinch .chop__b{transform:rotate(-7deg)}
.cursor.big .chop{opacity:0}
.cursor__label{position:absolute;left:50%;top:50%;width:0;height:0;border-radius:50%;background:var(--wasabi);color:var(--ink);display:grid;place-items:center;font-family:var(--disp);font-weight:800;font-size:12px;text-transform:uppercase;transform:translate(-50%,-50%);transition:width .35s var(--ease),height .35s var(--ease);overflow:hidden;white-space:nowrap}
.cursor.big .cursor__label{width:92px;height:92px}

.grain{position:fixed;inset:-50%;z-index:80;pointer-events:none;opacity:.07;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-5%,3%)}40%{transform:translate(4%,-6%)}60%{transform:translate(-3%,5%)}80%{transform:translate(6%,2%)}}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:70;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(16px,3vw,40px);mix-blend-mode:normal;transition:transform .5s var(--ease)}
.nav.hide{transform:translateY(-110%)}
.nav::before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);opacity:0;transition:opacity .4s}
.nav.solid::before{opacity:1}
.nav>*{position:relative}
.logo{font-family:var(--disp);font-weight:900;font-size:22px;letter-spacing:-.04em;display:flex;align-items:center;gap:8px}
.logo sup{font-family:var(--jp);font-size:10px;letter-spacing:0;color:var(--tobiko);align-self:flex-start;margin-top:2px}
.logo__dot{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle,var(--wasabi) 0 26%,var(--paper) 27% 58%,var(--tobiko) 59%)}
.nav__links{display:flex;gap:30px;font-family:var(--disp);font-size:13px;font-weight:500}
.nav__links a{position:relative}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--tobiko);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.nav__links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__tools{display:flex;gap:8px;align-items:center}
.moon{display:none}
html[data-mode="night"] .sun{display:none}
html[data-mode="night"] .moon{display:inline}

/* hero */
.hero{position:relative;min-height:100svh;overflow:hidden;display:grid;place-items:center;padding:110px clamp(16px,3vw,40px) 40px}
.hero__bg{position:absolute;inset:0;background:radial-gradient(60% 70% at 25% 30%,var(--heroA),transparent 70%),radial-gradient(60% 70% at 80% 70%,var(--heroB),transparent 70%),var(--heroC);transition:background .6s}
.hero__word{position:absolute;left:0;right:0;top:50%;transform:translateY(-54%);display:flex;justify-content:center;font-family:var(--disp);font-weight:900;font-size:clamp(110px,31vw,560px);line-height:.8;letter-spacing:-.07em;color:transparent;-webkit-text-stroke:2px var(--fg);pointer-events:none;user-select:none}
.hw{display:inline-block;will-change:transform}
.hw:nth-child(3){color:var(--tobiko);-webkit-text-stroke:0}
.hero__stage{position:absolute;inset:0;pointer-events:none}
.fl{position:absolute;will-change:transform;filter:drop-shadow(0 30px 40px rgba(40,10,40,.28))}
.fl--stack{width:clamp(170px,19vw,330px);left:50%;top:50%;z-index:3}
.fl--tobiko{width:clamp(110px,13vw,230px);left:12%;top:18%}
.fl--nigiri{width:clamp(150px,17vw,300px);right:6%;top:16%}
.fl--maki{width:clamp(90px,10vw,170px);left:40%;bottom:6%}
.fl--maki2{width:clamp(80px,8vw,150px);right:20%;bottom:10%;z-index:4}
.fl--torched{width:clamp(130px,15vw,260px);left:2%;top:52%}
.doodle{fill:none;stroke:var(--fg);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:none}
.doodle .f{fill:var(--fg);stroke:none}
.doodle--star{width:70px;left:34%;top:17%;fill:var(--wasabi)}
.doodle--spark{width:54px;right:30%;top:30%;fill:var(--tobiko);stroke:none}
.doodle--smile{width:84px;right:10%;bottom:30%;fill:var(--wasabi)}
.doodle--squiggle{width:150px;left:8%;bottom:26%;stroke:var(--tobiko);stroke-width:8}
.hero__copy{position:absolute;left:clamp(16px,3vw,40px);bottom:clamp(24px,4vw,48px);max-width:440px;z-index:5}
.hero__lead{font-size:clamp(17px,1.4vw,21px);font-weight:600;line-height:1.35;margin-bottom:22px}
.hero__cta{display:flex;flex-wrap:wrap;gap:10px}
.badge{position:absolute;right:clamp(16px,3vw,48px);bottom:clamp(24px,4vw,48px);width:150px;height:150px;z-index:5;display:grid;place-items:center}
.badge svg{position:absolute;inset:0;animation:spin 14s linear infinite}
.badge text{font-family:var(--disp);font-weight:800;font-size:15.5px;letter-spacing:.06em;fill:var(--fg)}
.badge__c{width:70px;height:70px;border-radius:50%;background:var(--wasabi);display:grid;place-items:center;font-family:var(--jp);font-weight:900;font-size:30px;color:var(--ink)}
.scrollhint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);font-family:var(--disp);font-size:11px;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:5}
.scrollhint i{width:2px;height:36px;background:var(--fg);transform-origin:top;animation:drip 1.8s var(--ease) infinite}
@keyframes drip{0%{transform:scaleY(0)}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* marquee */
.marquee{background:var(--ink);color:var(--paper);padding:26px 0;overflow:hidden;transform:rotate(-2deg) scale(1.04);margin:40px 0;position:relative;z-index:6}
html[data-mode="night"] .marquee{background:var(--tobiko)}
.marquee__track{display:flex;white-space:nowrap;font-family:var(--disp);font-weight:900;font-size:clamp(40px,6vw,96px);letter-spacing:-.04em;line-height:1;will-change:transform}
.marquee__track span{padding-right:.3em}
.marquee__track--rev{font-family:var(--jp);font-size:clamp(28px,3.4vw,54px);color:var(--wasabi);margin-top:10px;letter-spacing:.1em}

/* manifesto */
.manifesto{position:relative;padding:18vh clamp(16px,6vw,110px);}
.manifesto__text{font-family:var(--disp);font-weight:500;font-size:clamp(28px,4.2vw,68px);line-height:1.08;letter-spacing:-.035em;max-width:17ch;max-width:1200px;position:relative;z-index:2}
.manifesto__text .w{display:inline-block;opacity:.14;transition:none}
.manifesto__float{position:absolute;z-index:1;filter:drop-shadow(0 30px 40px rgba(0,0,0,.25))}
.m1{width:clamp(110px,14vw,230px);right:5%;top:8%}
.m2{width:clamp(160px,20vw,320px);right:14%;bottom:4%}

/* anatomy */
.anatomy{position:relative;height:320vh}
.anatomy__pin{position:sticky;top:0;height:100svh;display:grid;grid-template-columns:1fr 1.3fr;align-items:center;padding:0 clamp(16px,5vw,80px);overflow:hidden}
.anatomy__stage{position:relative;height:100%;display:grid;place-items:center}
.roll{width:min(46vw,70vh);overflow:visible}
.roll .ly{transform-box:fill-box;transform-origin:center;will-change:transform}
.labels{list-style:none;position:absolute;inset:0;pointer-events:none}
.labels li{position:absolute;left:0;top:0;font-family:var(--disp);font-weight:800;font-size:clamp(12px,1vw,15px);text-transform:uppercase;padding:8px 14px;border-radius:99px;background:var(--fg);color:var(--bg);opacity:0;white-space:nowrap}

/* menu */
.menu{position:relative}
.menu__pin{height:100svh;display:flex;align-items:center;overflow:hidden;position:relative}
.menu__head{flex:0 0 auto;width:min(480px,36vw);padding-left:clamp(16px,5vw,80px);padding-right:30px;position:relative;z-index:2;align-self:stretch;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(90deg,var(--bg) 82%,transparent)}
.menu .h2{font-size:clamp(40px,4.8vw,84px)}
.menu__track{display:flex;gap:28px;padding:0 10vw 0 40px;will-change:transform}
.card{flex:0 0 auto;width:clamp(270px,26vw,400px);height:min(560px,70svh);perspective:900px}
.card__in{position:relative;height:100%;border-radius:34px;background:linear-gradient(160deg,var(--c1),var(--c2));padding:28px;display:flex;flex-direction:column;justify-content:flex-end;color:var(--ink);transform-style:preserve-3d;transition:transform .5s var(--ease);will-change:transform}
.card__in img{position:absolute;left:50%;top:40%;width:78%;max-height:58%;object-fit:contain;transform:translate(-50%,-50%) translateZ(70px);filter:drop-shadow(0 26px 30px rgba(0,0,0,.28));transition:transform .6s var(--ease)}
.card:hover .card__in img{transform:translate(-50%,-56%) translateZ(110px) rotate(-6deg) scale(1.08)}
.card__n{position:absolute;top:24px;left:28px;font-family:var(--disp);font-weight:800;font-size:14px}
.card h3{font-family:var(--disp);font-weight:800;font-size:28px;letter-spacing:-.04em;line-height:1;transform:translateZ(40px)}
.card p{font-size:15px;margin-top:8px;max-width:26ch;opacity:.8;transform:translateZ(30px)}
.card b{position:absolute;top:22px;right:24px;font-family:var(--disp);font-weight:800;font-size:20px;background:var(--ink);color:var(--paper);padding:6px 14px;border-radius:99px;transform:translateZ(50px)}
.card--end .card__in{background:var(--ink);color:var(--paper);justify-content:center;align-items:flex-start;gap:24px}
html[data-mode="night"] .card--end .card__in{background:var(--wasabi);color:var(--ink)}
.card--end h3{font-size:40px}
.menu__progress{position:absolute;left:clamp(16px,5vw,80px);right:clamp(16px,5vw,80px);bottom:5vh;height:3px;background:var(--line);border-radius:3px;overflow:hidden}
.menu__progress i{display:block;height:100%;width:100%;background:var(--tobiko);transform:scaleX(0);transform-origin:left}

/* fire */
.fire{position:relative;height:100svh;display:grid;place-items:center;overflow:hidden;background:var(--ink);color:var(--paper)}
.fire__mask{position:absolute;inset:0;clip-path:circle(12% at 50% 50%);will-change:clip-path}
.fire__mask video{width:100%;height:100%;object-fit:cover;filter:saturate(1.15) contrast(1.05)}
.fire__mask::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(13,11,26,.65),rgba(13,11,26,.05) 60%)}
.fire__text{position:relative;z-index:2;text-align:center;padding:0 16px;text-shadow:0 6px 40px rgba(13,11,26,.55)}
.fire__text em{color:var(--wasabi)}
.fire__text p{font-size:18px;margin-top:22px}

/* build */
.build{padding:16vh clamp(16px,5vw,80px);position:relative;background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--wasabi) 22%,var(--bg)))}
.build__grid{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;max-width:1400px;margin:0 auto}
.opt{margin-top:34px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.opt__t{width:100%;font-family:var(--disp);font-weight:800;font-size:13px;text-transform:uppercase;color:var(--muted)}
.chip{height:48px;padding:0 20px;border-radius:99px;box-shadow:inset 0 0 0 2px var(--fg);font-weight:600;transition:background .3s,color .3s,transform .3s var(--ease)}
.chip:hover{transform:translateY(-3px)}
.chip.on{background:var(--fg);color:var(--bg)}
input[type=range]{-webkit-appearance:none;appearance:none;width:min(260px,60%);height:10px;border-radius:10px;background:linear-gradient(90deg,var(--wasabi),var(--tobiko));outline-offset:4px}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;border-radius:50%;background:var(--fg);border:4px solid var(--bg);cursor:pointer}
input[type=range]::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--fg);border:4px solid var(--bg)}
.chilis{font-size:24px;min-width:120px}
.build__right{display:flex;flex-direction:column;align-items:center;gap:30px}
.plate{position:relative;width:min(460px,80vw);aspect-ratio:1;display:grid;place-items:center}
.plate__ring{position:absolute;inset:0;border-radius:50%;background:var(--ink);box-shadow:0 40px 80px rgba(13,11,26,.35),inset 0 0 0 14px #1f1b35}
html[data-mode="night"] .plate__ring{background:#F4F1FF;box-shadow:0 40px 80px rgba(0,0,0,.5),inset 0 0 0 14px #ddd6f5}
.myroll{position:relative;width:74%;overflow:visible;transition:transform .7s var(--ease)}
.myroll.pop{animation:pop .6s var(--ease)}
@keyframes pop{30%{transform:scale(.86) rotate(-14deg)}70%{transform:scale(1.06) rotate(6deg)}}
.ticket{text-align:center}
.ticket__k{font-family:var(--disp);font-size:12px;text-transform:uppercase;color:var(--muted)}
.ticket__name{font-family:var(--disp);font-weight:900;font-size:clamp(30px,3.4vw,52px);letter-spacing:-.05em;line-height:1;margin:6px 0}
.ticket__price{font-family:var(--disp);font-weight:500;font-size:22px;margin-bottom:18px}

/* craft */
.craft{position:relative;min-height:110svh;display:flex;align-items:center;padding:0 clamp(16px,5vw,80px);overflow:hidden;background:var(--ink);color:var(--paper)}
.craft .kicker{background:var(--wasabi);color:var(--ink)}
.craft .note{color:#A9A3C9}
.craft__text{position:relative;z-index:3;pointer-events:none}
.craft__text .huge em{color:var(--tobiko)}
.trail{position:absolute;inset:0;z-index:2;pointer-events:none}
.trail img{position:absolute;left:0;top:0;width:clamp(150px,17vw,260px);aspect-ratio:3/4;object-fit:cover;border-radius:18px;opacity:0;will-change:transform,opacity}

/* gallery */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,1.6vw,24px);padding:14vh clamp(16px,3vw,40px);overflow:hidden;height:170vh;align-items:start}
.gcol{display:flex;flex-direction:column;gap:clamp(10px,1.6vw,24px);will-change:transform}
.gcol:nth-child(2){margin-top:-20vh}
.gcol img,.gvid{width:100%;border-radius:22px;aspect-ratio:3/4;object-fit:cover;filter:saturate(.85) contrast(1.05);transition:filter .5s,transform .8s var(--ease)}
.gvid{overflow:hidden;background:#111}
.gvid video{width:100%;height:100%;object-fit:cover}
.gcol img:hover{filter:saturate(1.1);transform:scale(.97) rotate(-1deg)}

/* play */
.play{position:relative;height:100svh;min-height:620px;background:radial-gradient(80% 60% at 70% 20%,var(--lilac),transparent 60%),radial-gradient(70% 60% at 10% 90%,var(--salmon),transparent 60%),var(--paper2);color:var(--ink);overflow:hidden}
html[data-mode="night"] .play{background:radial-gradient(80% 60% at 70% 20%,#3B237A,transparent 60%),radial-gradient(70% 60% at 10% 90%,#6A1E2A,transparent 60%),#0D0B1A;color:var(--paper)}
.play__head{position:absolute;left:clamp(16px,5vw,80px);top:14vh;z-index:2;pointer-events:none}
.play__head .pill{pointer-events:auto}
.play__count{margin-top:18px;font-family:var(--disp);font-size:14px}
.play__count b{font-size:28px;color:var(--tobiko)}
.play__canvas{position:absolute;inset:0;z-index:1;touch-action:pan-y}
.play__canvas canvas{display:block;width:100%;height:100%}

/* visit */
.visit{padding:16vh clamp(16px,5vw,80px)}
.visit__grid{display:grid;grid-template-columns:1.1fr 1fr;gap:6vw;max-width:1400px;margin:0 auto;align-items:start}
.addr{font-style:normal;font-family:var(--disp);font-weight:500;font-size:clamp(20px,2vw,30px);line-height:1.2;margin-top:34px;letter-spacing:-.02em}
.rsv{position:relative;background:var(--ink);color:var(--paper);border-radius:34px;padding:clamp(22px,3vw,40px);overflow:hidden}
html[data-mode="night"] .rsv{background:#1B1733}
.rsv__t{font-family:var(--disp);font-size:12px;font-weight:800;text-transform:uppercase;color:#A9A3C9;margin:22px 0 10px}
.rsv__t:first-child{margin-top:0}
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg button{height:46px;min-width:46px;padding:0 16px;border-radius:99px;box-shadow:inset 0 0 0 1.5px rgba(244,241,255,.3);transition:.3s}
.seg button.on{background:var(--wasabi);color:var(--ink);box-shadow:none}
.days{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:none}
.days button{flex:0 0 auto;width:66px;height:78px;border-radius:18px;box-shadow:inset 0 0 0 1.5px rgba(244,241,255,.3);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--disp);transition:.3s}
.days button small{font-size:10px;text-transform:uppercase;opacity:.7}
.days button b{font-size:22px}
.days button.on{background:var(--tobiko);box-shadow:none}
.field{display:block;position:relative;margin:26px 0 18px}
.field input{width:100%;height:58px;border-radius:16px;border:0;background:rgba(244,241,255,.08);color:var(--paper);padding:22px 18px 6px;font:inherit;outline:none;box-shadow:inset 0 0 0 1.5px rgba(244,241,255,.2)}
.field input:focus{box-shadow:inset 0 0 0 2px var(--wasabi)}
.field input::placeholder{color:transparent}
.field span{position:absolute;left:18px;top:18px;font-size:14px;color:#A9A3C9;transition:.25s var(--ease);pointer-events:none}
.field input:focus+span,.field input:not(:placeholder-shown)+span{top:8px;font-size:11px}
.rsv__demo{font-size:12px;color:#A9A3C9;margin-top:12px;text-align:center}
.rsv__ok{position:absolute;inset:0;background:var(--wasabi);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:30px;clip-path:circle(0% at 50% 100%);transition:clip-path .9s var(--ease)}
.rsv__ok b{font-family:var(--disp);font-size:28px;letter-spacing:-.03em}
.rsv__ok .big{font-size:64px}
.rsv.done .rsv__ok{clip-path:circle(150% at 50% 100%)}

/* footer */
.foot{background:var(--tobiko);color:var(--ink);padding:6vh clamp(16px,3vw,40px) 24px;overflow:hidden}
.foot__word{display:flex;justify-content:space-between;font-family:var(--disp);font-weight:900;font-size:27vw;line-height:.8;letter-spacing:-.06em}
.foot__word span{display:inline-block;transform-origin:bottom;will-change:transform}
.foot__row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:14px;margin-top:24px;font-weight:600}

/* responsive */
@media (max-width:900px){
  body{font-size:16px}
  .nav__links{display:none}
  .nav .btn--small{display:none}
  .hero{padding-top:90px}
  .hero__word{top:36%;-webkit-text-stroke:1.5px var(--fg)}
  .fl--stack{top:38%;width:44vw}
  .fl--nigiri{top:12%;right:-4%}
  .fl--tobiko{left:-2%;top:13%}
  .fl--torched{top:44%;left:-6%}
  .fl--maki{display:none}
  .fl--maki2{right:4%;top:48%;bottom:auto}
  .doodle--squiggle,.doodle--smile{display:none}
  .hero__copy{right:16px;max-width:none}
  .badge{width:104px;height:104px;top:auto;bottom:auto;right:12px;top:58%}
  .badge__c{width:50px;height:50px;font-size:22px}
  .badge text{font-size:15px}
  .scrollhint{display:none}
  .anatomy{height:260vh}
  .anatomy__pin{grid-template-columns:1fr;grid-template-rows:auto 1fr;padding-top:100px}
  .roll{width:min(78vw,52vh)}
  .menu__pin{flex-direction:column;align-items:flex-start;justify-content:center;gap:26px}
  .menu__head{width:auto;padding:0 16px;background:none;align-self:auto}
  .menu__head .note{display:none}
  .menu__track{padding:0 16px}
  .card{height:min(430px,52svh);width:74vw}
  .build__grid,.visit__grid{grid-template-columns:1fr}
  .build__right{order:-1}
  .gallery{grid-template-columns:repeat(2,1fr);height:auto}
  .gcol:nth-child(3){display:none}
  .gcol:nth-child(2){margin-top:12vh}
  .play__head{top:10vh}
  .foot__row{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  video{display:none}
  .fire__mask{clip-path:none!important;background:url(a/fire-poster.webp) center/cover}
  .manifesto__text .w{opacity:1!important}
}
.stack3d{position:relative;width:min(44vw,62vh);aspect-ratio:1;transform-style:preserve-3d;perspective:none}
.anatomy__stage{perspective:1400px}
.lay{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.lay svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 18px 18px rgba(13,11,26,.18))}
.pin{position:absolute;width:2px;height:2px}
@media (max-width:900px){.stack3d{width:min(74vw,46vh)}}
html[data-mode="night"] .build{background:linear-gradient(180deg,var(--bg),#1B1733)}
.menu__head .kicker{align-self:flex-start}
