@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@800;900&family=Noto+Serif+JP:wght@400;500;600;700&display=swap');
:root{--black:#080808;--white:#fff;--line:#d1d1d1;--display:'Barlow Condensed','Arial Narrow',Impact,sans-serif;--jp:'Noto Serif JP','Yu Mincho',serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--white);color:var(--black);font-family:Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:7px}::selection{background:#888;color:white}.jp{font-family:var(--jp);font-weight:500}.light{background:#fff;color:#080808}.dark{background:#080808;color:#fff}.header{position:absolute;top:0;left:0;z-index:50;width:100%;display:flex;justify-content:space-between;align-items:center;padding:30px 3.5vw}.brand{font-size:21px;font-weight:900;letter-spacing:-1.1px}.brand span{font-size:28px}.menu-toggle{border:0;background:none;font-size:11px;letter-spacing:1px;cursor:pointer;padding:10px 0 10px 20px;display:flex;align-items:center;gap:18px}.menu-icon{font-size:25px;line-height:1}.menu{position:fixed;z-index:40;inset:0;background:#eaeaea;padding:140px 8vw 50px}.menu[hidden]{display:none}.menu a{display:flex;justify-content:space-between;font-family:var(--display);font-size:clamp(35px,7vw,90px);border-bottom:1px solid #aaa;padding:12px 0}.menu a span{font:12px Arial;margin-top:12px}.menu p{font-family:var(--jp);margin-top:40px}.menu-open{overflow:hidden}.menu-open .header{position:fixed}.section-meta,.footer-bottom{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;align-items:center}.section-meta{padding:0;position:relative;z-index:2}.section-meta span:last-child{letter-spacing:2px}.philosophy{padding:40px 3.5vw 100px;min-height:115svh}.philosophy-lines{margin:150px auto 110px;width:max-content;max-width:100%;font-size:clamp(18px,2.5vw,36px);line-height:2;letter-spacing:.13em}.philosophy-lines p{margin:0 0 50px}.philosophy-note{display:flex;gap:80px;justify-content:flex-end;padding-right:10vw;font-size:13px;line-height:2.5}.philosophy-note>span{writing-mode:vertical-rl;letter-spacing:4px}.philosophy-note p{margin:0}.mobile-break{display:none}.passion{padding:38px 3.5vw 35px;overflow:hidden}.passion-type{position:relative;margin:100px -1vw 70px}.passion h2{font:900 clamp(110px,21vw,350px)/.78 var(--display);letter-spacing:-.025em;margin:0;position:relative;z-index:1}.passion h2 span{display:block;margin-left:12vw;margin-top:.09em}.outline-type{position:absolute;left:48%;top:44%;font:900 22vw/.8 var(--display);color:transparent;-webkit-text-stroke:1px #555;white-space:nowrap}.passion-copy{display:flex;justify-content:space-between;align-items:end;padding:0 6vw 70px 12vw;font-size:clamp(17px,2vw,26px);line-height:2.1;letter-spacing:.06em}.passion-copy p{margin:0}.passion-copy .small-copy{font-size:12px;line-height:2.4;color:#bbb}.passion-baseline{border-top:1px solid #555;padding-top:20px;font-size:10px;letter-spacing:2px}.shop{padding:38px 3.5vw 100px;border-top:1px solid #ddd}.shop-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:7vw;margin-top:85px;align-items:center}.shop h2{font:900 clamp(70px,9vw,160px)/.88 var(--display);letter-spacing:-.025em;margin:0 0 35px}.shop h2>span{color:transparent;-webkit-text-stroke:1.5px #080808}.shop-layout p.jp{font-size:18px;letter-spacing:2px}.shop-button{display:flex;justify-content:space-between;max-width:360px;border-bottom:1px solid;padding:25px 0 18px;font-size:11px;letter-spacing:1px;margin-top:35px}.shop-button span{font-size:24px;transition:transform .2s}.shop-button:hover span{transform:translate(4px,-4px)}.poster-art{background:#eaeaea;padding:40px 40px 25px;transform:rotate(2deg)}.poster-paper{background:#080808;color:#fff;aspect-ratio:.71;padding:25px 20px;display:flex;flex-direction:column;box-shadow:6px 10px 15px #0002}.print-brand{font-size:10px;font-weight:800;letter-spacing:-.3px}.print-title{font-size:clamp(80px,12vw,180px);line-height:.95;font-weight:700;text-align:center;margin:auto;position:relative}.print-title>span{position:absolute;font-size:.4em;right:-.4em;bottom:0}.print-bottom{display:flex;justify-content:space-between;font-size:6px;letter-spacing:.5px;border-top:1px solid #666;padding-top:12px}.art-caption{font-size:7px;letter-spacing:1px;display:block;margin-top:20px}.shop-info{font-size:11px;color:#666;display:none}.shop-info:target{display:block}.footer{padding:35px 3.5vw 26px}.footer-question{font:900 clamp(40px,10vw,180px)/1 var(--display);letter-spacing:-.02em;text-align:center;margin:110px 0 20px}.footer-brand{display:block;text-align:center;font-size:18px;font-weight:900;letter-spacing:-1px}.footer-bottom{margin-top:100px;border-top:1px solid #444;padding-top:24px;font-size:9px;gap:20px}.footer-bottom>div{display:flex;gap:32px}.social-info{display:none;font-size:12px}.social-info:target{display:block}.skip{position:fixed;z-index:200;left:20px;top:-100px;background:white;padding:15px}.skip:focus{top:15px}
@media(max-width:700px){.header{padding:22px 6vw}.brand{font-size:17px}.brand span{font-size:23px}.section-meta{font-size:8px;letter-spacing:.3px}.section-meta span:last-child{font-size:8px;letter-spacing:1px}.philosophy{padding:30px 6vw 80px;min-height:auto}.philosophy-lines{font-size:4.4vw;letter-spacing:.05em;margin:110px 0 70px}.philosophy-lines p{margin-bottom:45px}.mobile-break{display:block}.philosophy-note{padding:0;gap:30px;font-size:11px;justify-content:center}.passion{padding:30px 6vw}.passion-type{margin:100px 0 50px}.passion h2{font-size:25vw}.outline-type{font-size:28vw;left:45%}.passion-copy{display:block;padding:0 0 60px 6vw;font-size:16px}.passion-copy .small-copy{margin-top:35px;font-size:11px}.shop{padding:30px 6vw 60px}.shop-layout{grid-template-columns:1fr;margin-top:65px;gap:60px}.shop h2{font-size:17vw}.shop-layout p.jp{font-size:14px}.poster-art{max-width:320px;width:85%;justify-self:center;padding:28px}.print-title{font-size:100px}.shop-button{max-width:100%}.footer{padding:30px 6vw}.footer-question{font-size:10vw;margin:80px 0 25px}.footer-brand{font-size:16px}.footer-bottom{margin-top:75px;flex-wrap:wrap;line-height:1.7;font-size:8px}.footer-bottom>span:last-child{display:none}.footer-bottom>div{gap:20px}.menu{padding:110px 6vw 30px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* V2: one symbol, one scroll-driven cinematic sequence. */
.experience{background:#fff}.experience-stage{height:100svh;position:relative;overflow:hidden;color:#080808;background:#fff;isolation:isolate}.scene-meta,.scene-bottom{position:absolute;left:3.5vw;right:3.5vw;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1px;z-index:3}.scene-meta{top:125px;border-top:1px solid #8885;padding-top:15px}.scene-bottom{bottom:35px;border-bottom:1px solid #8885;padding-bottom:22px}.scene-bottom .jp{font-size:13px;letter-spacing:2px}.experience-scroll{display:flex;align-items:center;gap:15px}.experience-scroll>span{font-size:9px}.brand-lockup{position:absolute;top:50%;left:50%;display:flex;align-items:flex-start;white-space:nowrap;margin:0;font:900 11.8vw/.85 var(--display);letter-spacing:-.02em;transform:translate(-50%,-50%)}.logo-word{display:inline-block}.symbol{display:inline-block;width:.31em;height:.31em;position:relative;margin-left:.015em;margin-top:-.02em;flex-shrink:0;color:inherit}.symbol svg{display:block;width:100%;height:100%;overflow:visible}.symbol-ring{fill:none;stroke:currentColor;stroke-width:18}.meter-detail{opacity:0}.meter-arc{fill:none;stroke:currentColor;stroke-width:5;stroke-dasharray:458.673;stroke-dashoffset:458.673;transform:rotate(-90deg);transform-origin:100px 100px}.meter-needle{transform-origin:100px 100px}.meter-needle path{stroke:currentColor;stroke-width:1.2}.meter-needle circle{fill:currentColor}.meter-number{position:absolute;left:0;right:0;top:54%;text-align:center;font:700 .035em Arial;letter-spacing:-.03em;line-height:1}.meter-number small{font-size:.15em;display:block;letter-spacing:.1em;margin-top:.7em}.meter-caption{position:absolute;left:3.5vw;right:3.5vw;top:50%;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px;opacity:0}.meter-caption span:first-child{font-family:var(--jp);writing-mode:vertical-rl;letter-spacing:4px}.boiling{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}.overheat-word{position:absolute;inset:0;margin:0;display:grid;place-items:center;font-size:clamp(120px,25vw,390px);font-weight:900;letter-spacing:-.07em;opacity:0;pointer-events:none}.scene-shutter{position:absolute;inset:0;background:#080808;z-index:8;opacity:0;pointer-events:none}.still-scene{position:absolute;inset:0;background:#fff;color:#080808;display:grid;place-items:center;opacity:0;z-index:7;pointer-events:none}.still-scene h2{font-size:clamp(26px,4.5vw,64px);font-weight:400;letter-spacing:.2em;margin:0}.scene-progress{font-variant-numeric:tabular-nums}.experience.reduced .experience-stage{height:100svh}.experience.reduced .still-scene{position:relative;opacity:1;height:85svh}.experience.reduced .brand-lockup{font-size:11.8vw}.experience.reduced .overheat-word{display:none}
@media(max-width:700px){.scene-meta{top:105px;left:6vw;right:6vw;font-size:7px;letter-spacing:.5px}.scene-bottom{left:6vw;right:6vw;bottom:30px;font-size:8px}.scene-bottom .jp{display:none}.brand-lockup{font-size:13vw}.meter-caption{left:6vw;right:6vw;font-size:7px;top:30%}.overheat-word{font-size:33vw}.still-scene h2{font-size:7vw;letter-spacing:.12em}}

/* V3 typography: inherit the existing animated scene foreground color. */
.scene-bottom {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 20px;
}
.scene-bottom .scene-progress { justify-self: end; }
.scene-catchcopy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  text-align: center;
  color: inherit;
}
.catchcopy-en {
  font: 800 clamp(23px, 2.5vw, 38px)/1 var(--display);
  letter-spacing: .01em;
  white-space: nowrap;
}
.scene-bottom .catchcopy-jp {
  display: block;
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: .12em;
  white-space: nowrap;
}
.footer-question {
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: .13em;
  white-space: nowrap;
}
.footer-degree {
  display: inline-flex;
  align-items: flex-start;
  align-self: center;
  gap: .025em;
  transform: translateY(-.06em);
  letter-spacing: 0;
}
.degree-quote {
  font: 700 .36em/1 Arial, sans-serif;
}
.degree-symbol {
  display: inline-block;
  flex: none;
  width: .30em;
  height: .30em;
  border: .035em solid currentColor;
  border-radius: 50%;
  overflow: hidden;
  text-indent: -9999px;
}
@media (max-width: 700px) {
  .scene-bottom {
    grid-template-columns: 1fr 1fr;
    gap: 18px 12px;
  }
  .scene-catchcopy { grid-column: 1 / -1; grid-row: 1; }
  .scene-bottom .experience-scroll { grid-column: 1; grid-row: 2; }
  .scene-bottom .scene-progress { grid-column: 2; grid-row: 2; }
  .catchcopy-en { font-size: 25px; }
  .scene-bottom .catchcopy-jp { font-size: 10px; }
  .footer-question { gap: .11em; }
}
/* A quieter serif voice for the question beneath the meter. */
.catchcopy-en {
  font-family: var(--jp);
  font-weight: 400;
  font-size: clamp(12.6px, 1.19vw, 18.9px);
  line-height: 1.4;
  letter-spacing: .06em;
}
@media (max-width: 700px) {
  .catchcopy-en { font-size: 12.6px; }
}

/* SHOP: product-independent copy and a repeatable product-card structure. */
.shop { position: relative; }
.shop-alias { position: absolute; top: 0; left: 0; width: 1px; height: 1px; }
.shop-layout { grid-template-columns: 1.2fr 1fr; gap: 6vw; }
.shop h2 { margin-bottom: 30px; }
.shop-layout p.shop-tagline { font-size: clamp(22px, 2.4vw, 34px); margin: 0 0 30px; letter-spacing: .12em; }
.shop-layout p.shop-description { font-size: 13px; line-height: 2.2; letter-spacing: .035em; margin: 0; }
.shop-button {
  background: var(--black);
  color: var(--white);
  border: 1px solid var(--black);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 25px 28px;
  width: 100%;
  max-width: 430px;
  margin-top: 40px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .07em;
  min-height: 76px;
  transition: background-color .2s;
}
.shop-button:hover { background: #333; }
.shop-button span:first-child { font-size: inherit; transform: none; }
.shop-button span:last-child { font-size: 26px; line-height: 1; }
.shop-destination { font-size: 10px; line-height: 1.7; color: #555; margin: 13px 0 0; letter-spacing: .03em; }
.shop-products { width: 100%; max-width: 480px; justify-self: end; list-style: none; display: grid; gap: 55px; margin: 0; padding: 0; min-width: 0; }
.product-card { min-width: 0; }
.product-category { font-size: 10px; font-weight: 700; letter-spacing: .15em; margin: 0 0 24px; }
.product-visual { margin: 0; }
@media (max-width: 700px) {
  .shop-layout { grid-template-columns: 1fr; gap: 55px; }
  .shop-layout p.shop-tagline { font-size: 23px; margin-bottom: 24px; }
  .shop-layout p.shop-description { font-size: 11px; }
  .shop-button { padding: 22px; margin-top: 30px; min-height: 70px; font-size: 14px; }
  .shop-destination { font-size: 9px; }
  .shop-products { justify-self: center; }
  .product-category { text-align: center; }
  .product-visual { margin: 0 auto; }
}
.product-visual img { display: block; width: 100%; height: auto; }

/* Mobile-only purchase link and OVERHEAT alignment; GSAP keeps its transforms. */
.shop-mobile-button { display: none; }
@media (max-width: 767px) {
  .shop-mobile-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40%;
    min-width: 100px;
    max-width: 143.333px;
    min-height: 44px;
    padding: 10px;
    margin: 28px auto 0;
    background: var(--black);
    color: var(--white);
    font-size: 12px;
    line-height: 1.5;
    text-align: center;
    white-space: nowrap;
  }
  .overheat-word {
    /* One full-width glyph plus the existing -.07em letter spacing. */
    justify-items: start;
    padding-left: calc(50% - .93em);
    white-space: nowrap;
  }
}
@media (max-width: 700px) {
  .shop-mobile-button { width: 33.333333%; }
}
