/*
  1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
  2. Remove default margins and padding
  3. Reset all borders.
*/

*,
::after,
::before,
::backdrop,
::file-selector-button {
  box-sizing: border-box; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 2 */
  border: 0 solid; /* 3 */
}

/*
  1. Use a consistent sensible line-height in all browsers.
  2. Prevent adjustments of font size after orientation changes in iOS.
  3. Use a more readable tab size.
  4. Use the user's configured `sans` font-family by default.
  5. Use the user's configured `sans` font-feature-settings by default.
  6. Use the user's configured `sans` font-variation-settings by default.
  7. Disable tap highlights on iOS.
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  tab-size: 4; /* 3 */
  font-family: --theme(
    --default-font-family,
    ui-sans-serif,
    system-ui,
    sans-serif,
    'Apple Color Emoji',
    'Segoe UI Emoji',
    'Segoe UI Symbol',
    'Noto Color Emoji'
  ); /* 4 */
  font-feature-settings: --theme(--default-font-feature-settings, normal); /* 5 */
  font-variation-settings: --theme(--default-font-variation-settings, normal); /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
  1. Add the correct height in Firefox.
  2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
  3. Reset the default border style to a 1px solid border.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
  Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

/*
  Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
  Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  -webkit-text-decoration: inherit;
  text-decoration: inherit;
}

/*
  Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
  1. Use the user's configured `mono` font-family by default.
  2. Use the user's configured `mono` font-feature-settings by default.
  3. Use the user's configured `mono` font-variation-settings by default.
  4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: --theme(
    --default-mono-font-family,
    ui-monospace,
    SFMono-Regular,
    Menlo,
    Monaco,
    Consolas,
    'Liberation Mono',
    'Courier New',
    monospace
  ); /* 1 */
  font-feature-settings: --theme(--default-mono-font-feature-settings, normal); /* 2 */
  font-variation-settings: --theme(--default-mono-font-variation-settings, normal); /* 3 */
  font-size: 1em; /* 4 */
}

/*
  Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
  Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
  1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
  2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
  3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
  Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
  Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
  Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
  Make lists unstyled by default.
*/

ol,
ul,
menu {
  list-style: none;
}

/*
  1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
  2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
      This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
  Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/*
  1. Inherit font styles in all browsers.
  2. Remove border radius in all browsers.
  3. Remove background color in all browsers.
  4. Ensure consistent opacity for disabled states in all browsers.
*/

button,
input,
select,
optgroup,
textarea,
::file-selector-button {
  font: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  border-radius: 0; /* 2 */
  background-color: transparent; /* 3 */
  opacity: 1; /* 4 */
}

/*
  Restore default font weight.
*/

:where(select:is([multiple], [size])) optgroup {
  font-weight: bolder;
}

/*
  Restore indentation.
*/

:where(select:is([multiple], [size])) optgroup option {
  padding-inline-start: 20px;
}

/*
  Restore space after button.
*/

::file-selector-button {
  margin-inline-end: 4px;
}

/*
  Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
*/

::placeholder {
  opacity: 1;
}

/*
  Set the default placeholder color to a semi-transparent version of the current text color in browsers that do not
  crash when using `color-mix(…)` with `currentcolor`. (https://github.com/tailwindlabs/tailwindcss/issues/17194)
*/

@supports (not (-webkit-appearance: -apple-pay-button)) /* Not Safari */ or
  (contain-intrinsic-size: 1px) /* Safari 17+ */ {
  ::placeholder {
    color: color-mix(in oklab, currentcolor 50%, transparent);
  }
}

/*
  Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
  Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
  1. Ensure date/time inputs have the same height when empty in iOS Safari.
  2. Ensure text alignment can be changed on date/time inputs in iOS Safari.
*/

::-webkit-date-and-time-value {
  min-height: 1lh; /* 1 */
  text-align: inherit; /* 2 */
}

/*
  Prevent height from changing on date/time inputs in macOS Safari when the input is set to `display: block`.
*/

::-webkit-datetime-edit {
  display: inline-flex;
}

/*
  Remove excess padding from pseudo-elements in date/time inputs to ensure consistent height across browsers.
*/

::-webkit-datetime-edit-fields-wrapper {
  padding: 0;
}

::-webkit-datetime-edit,
::-webkit-datetime-edit-year-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-second-field,
::-webkit-datetime-edit-millisecond-field,
::-webkit-datetime-edit-meridiem-field {
  padding-block: 0;
}

/*
  Center dropdown marker shown on inputs with paired `<datalist>`s in Chrome. (https://github.com/tailwindlabs/tailwindcss/issues/18499)
*/

::-webkit-calendar-picker-indicator {
  line-height: 1;
}

/*
  Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
  Correct the inability to style the border radius in iOS Safari.
*/

button,
input:where([type='button'], [type='reset'], [type='submit']),
::file-selector-button {
  appearance: button;
}

/*
  Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
  Make elements with the HTML hidden attribute stay hidden by default.
*/

[hidden]:where(:not([hidden='until-found'])) {
  display: none !important;
}



:root{--ink:#090909;--black:#101010;--paper:#f2eee6;--red:#b51917;--gold:#c89a48;--line:rgba(255,255,255,.18);--font-sans:"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;--font-serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho",serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:#fff;font-family:var(--font-sans),sans-serif}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}section[id]{scroll-margin-top:88px}.section-pad{padding:120px max(6vw,28px)}
.site-header{height:88px;padding:0 max(3.5vw,24px);display:flex;align-items:center;gap:50px;position:fixed;z-index:30;top:0;left:0;width:100%;border-bottom:1px solid var(--line);background:rgba(7,7,7,.92);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:12px;min-width:max-content}.brand-mark{width:44px;height:44px;border:1px solid var(--gold);display:grid;place-items:center;color:var(--gold);font-family:var(--font-serif);font-size:24px;transform:rotate(45deg)}.brand-mark::first-line{transform:rotate(-45deg)}.brand b{display:block;font-family:var(--font-serif);letter-spacing:.12em;font-size:18px}.brand small{display:block;font-family:var(--font-display);font-size:9px;letter-spacing:.28em;color:#aaa;margin-top:3px}.desktop-nav{display:flex;align-items:center;gap:clamp(14px,1.7vw,30px);margin-left:auto;white-space:nowrap}.desktop-nav a{font-size:11px;letter-spacing:.08em;color:#ddd}.desktop-nav a:hover{color:var(--gold)}.header-actions{height:88px;margin-right:max(-3.5vw,-24px);display:flex;align-items:stretch}.nav-inquiry,.nav-cta{padding:0 28px;display:grid;place-items:center;font-size:12px;font-weight:700;letter-spacing:.08em}.nav-inquiry{border-left:1px solid var(--line);background:#111}.nav-inquiry:hover{color:var(--gold)}.nav-cta{background:var(--red)}.mobile-menu{display:none}
@media(max-width:1400px){.site-header{gap:24px}.desktop-nav{gap:13px}.desktop-nav a{font-size:10px;letter-spacing:.03em}.nav-inquiry{display:none}.nav-cta{padding:0 22px}}
.hero{height:min(940px,100vh);min-height:720px;position:relative;overflow:hidden;background:#090909}.hero-bg{position:absolute;inset:0;overflow:hidden}.hero-bg img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.hero-bg:before{content:"";position:absolute;z-index:1;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.96) 0%,rgba(0,0,0,.76) 30%,rgba(0,0,0,.18) 68%,rgba(0,0,0,.45) 100%),linear-gradient(0deg,rgba(0,0,0,.9),transparent 45%)}.hero-bg:after{content:"";position:absolute;z-index:2;inset:0;background:radial-gradient(circle at 72% 46%,transparent 0 15%,rgba(0,0,0,.32) 58%,rgba(0,0,0,.75) 100%)}.hero-grain{position:absolute;inset:0;opacity:.15;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.hero-content{position:relative;z-index:2;padding:150px max(7vw,40px) 70px;max-width:900px}.eyebrow,.section-kicker{font-family:var(--font-display);font-size:12px;letter-spacing:.34em;color:var(--gold);display:flex;align-items:center;gap:12px}.eyebrow span{width:34px;height:1px;background:var(--gold)}.hero h1{font-family:var(--font-display);font-weight:700;font-size:clamp(48px,5.4vw,82px);line-height:.98;letter-spacing:.015em;margin:24px 0 14px;text-shadow:0 4px 30px #000}.hero h1 span{display:block;font-size:.48em;letter-spacing:.17em;margin-bottom:9px}.hero h1 em{color:var(--gold);font-style:normal}.hero-jp{margin:0 0 19px;font-family:var(--font-serif);font-size:14px;font-weight:700;letter-spacing:.16em;color:#ddd}.hero-manifesto{max-width:760px;margin:0 0 14px;font-family:var(--font-display);font-size:clamp(14px,1.25vw,19px);font-weight:600;letter-spacing:.09em;line-height:1.45;color:#fff}.hero-manifesto em{color:var(--gold);font-style:normal}.lead{max-width:690px;margin:0;font-family:var(--font-sans);font-size:14px;line-height:1.75;letter-spacing:.035em;color:#c9c5be}.hero-actions{display:flex;align-items:center;gap:32px;margin-top:26px}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-width:230px;padding:18px 22px;font-size:13px;font-weight:700;letter-spacing:.08em;transition:.25s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--red);box-shadow:0 12px 35px rgba(181,25,23,.25)}.text-link{font-size:12px;letter-spacing:.12em;border-bottom:1px solid #777;padding:12px 0}.text-link span{color:var(--gold);margin-left:14px}.hero-note{position:absolute;right:max(3.5vw,24px);bottom:36px;z-index:2;text-align:right;font-family:var(--font-display)}.hero-note b{display:block;font-size:12px;letter-spacing:.25em}.hero-note span{display:block;color:#aaa;font-size:9px;letter-spacing:.28em;margin-top:6px}.scroll{position:absolute;left:22px;bottom:70px;z-index:3;font-family:var(--font-display);font-size:9px;letter-spacing:.25em;writing-mode:vertical-rl}.scroll span{display:inline-block;width:1px;height:54px;background:var(--gold);margin-top:12px}
.intro{background:var(--paper);color:var(--ink)}.section-kicker span{font-size:11px;border:1px solid currentColor;padding:5px 7px}.intro-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:9vw;margin-top:48px;align-items:start}.intro h2,.program h2,.access h2,.faq h2,.information h2{font-family:var(--font-serif);font-size:clamp(36px,4.2vw,66px);line-height:1.35;margin:0}.intro h2{font-family:var(--font-display);font-size:clamp(38px,4.5vw,68px);font-weight:700;line-height:1.02;letter-spacing:.01em}.intro h2 small{display:block;margin-bottom:24px;font-family:var(--font-serif);font-size:13px;font-weight:700;letter-spacing:.13em;color:#7a1a18}.intro h2 em{color:var(--red);font-style:normal}.intro-grid>div{font-size:15px;line-height:2.05;color:#4d4943;border-left:1px solid #c8c0b4;padding-left:36px}.experience-grid{display:grid;grid-template-columns:repeat(4,1fr);margin-top:100px;border-top:1px solid #c8c0b4}.experience-grid article{padding:30px 28px 34px;border-right:1px solid #c8c0b4;min-height:400px}.experience-grid article:last-child{border-right:0}.card-no{font-family:var(--font-display);color:var(--red);font-size:12px}.card-line{width:100%;height:4px;background:var(--ink);margin:24px 0 34px;position:relative}.card-line:after{content:"";position:absolute;right:0;width:10px;height:10px;background:var(--red);top:-3px;transform:rotate(45deg)}.experience-grid h3{font-family:var(--font-display);font-size:34px;letter-spacing:.08em;margin:0 0 8px}.experience-grid .card-jp{margin:0 0 20px;font-family:var(--font-serif);font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--red)}.experience-grid p{font-size:13px;line-height:1.9;color:#57534d}
.statement{height:520px;background:radial-gradient(circle at 70% 30%,#3b0a08 0,transparent 32%),linear-gradient(120deg,#0b0b0b,#18120f);position:relative;overflow:hidden}.statement:before{content:"祭";position:absolute;right:-2vw;top:-16vw;font-family:var(--font-serif);font-size:55vw;line-height:1;color:rgba(255,255,255,.025)}.statement-inner{position:relative;z-index:1;height:100%;padding:80px max(8vw,36px);display:flex;justify-content:space-between;align-items:center}.statement p{font-family:var(--font-serif);font-size:clamp(34px,4vw,62px);line-height:1.45}.statement strong{font-family:var(--font-display);font-size:clamp(70px,11vw,170px);line-height:.83;color:transparent;-webkit-text-stroke:1px rgba(200,154,72,.5);text-align:right}
.difference{display:grid;grid-template-columns:1.08fr .92fr;min-height:780px;background:#090909;border-top:1px solid rgba(200,154,72,.22);border-bottom:1px solid rgba(200,154,72,.22)}.difference-visual{position:relative;overflow:hidden;margin:0;min-height:620px;background:#1a130f}.difference-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 50%,rgba(9,9,9,.72)),linear-gradient(0deg,rgba(0,0,0,.7),transparent 48%)}.difference-visual img{width:100%;height:100%;object-fit:cover;filter:saturate(.82) contrast(1.08) brightness(.72)}.difference-visual figcaption{position:absolute;left:32px;bottom:28px;z-index:2;font-family:var(--font-display);font-size:9px;letter-spacing:.28em;color:var(--gold)}.difference-copy{position:relative;padding:100px clamp(34px,5vw,84px);display:flex;flex-direction:column;justify-content:center;overflow:hidden}.difference-copy:before{content:"二";position:absolute;right:-.06em;top:-.16em;font-family:var(--font-serif);font-size:390px;font-weight:900;line-height:1;color:rgba(200,154,72,.04)}.difference-copy>*{position:relative;z-index:1}.difference-kicker{display:flex;align-items:center;gap:13px;font-family:var(--font-display);font-size:9px;letter-spacing:.24em;color:#777}.difference-kicker span{padding:7px 9px;background:var(--red);color:#fff;font-weight:700}.difference-en{margin:34px 0 28px;font-family:var(--font-display);font-size:clamp(28px,3.25vw,55px);font-weight:600;line-height:.96;letter-spacing:.035em;color:transparent;-webkit-text-stroke:1px rgba(200,154,72,.7)}.difference-en em{font-style:normal;color:var(--gold);-webkit-text-stroke:0;font-size:.4em;letter-spacing:.13em}.difference h2{margin:0;font-family:var(--font-serif);font-size:clamp(31px,3.1vw,52px);line-height:1.42;letter-spacing:.025em}.difference h2 strong{color:var(--gold);font-weight:900}.difference-lead{margin:30px 0 0;max-width:620px;color:#aaa;font-size:14px;line-height:2}.difference-points{display:grid;grid-template-columns:1fr 1fr;margin-top:40px;border-top:1px solid rgba(200,154,72,.38);border-bottom:1px solid rgba(200,154,72,.38)}.difference-points article{display:flex;align-items:center;gap:18px;padding:22px 12px 22px 0}.difference-points article+article{padding-left:24px;border-left:1px solid rgba(200,154,72,.25)}.difference-points b{font-family:var(--font-display);font-size:clamp(38px,4vw,62px);font-weight:500;color:var(--gold);line-height:1}.difference-points span{display:block;font-family:var(--font-display);font-size:8px;letter-spacing:.2em;color:#777}.difference-points p{margin:7px 0 0;font-family:var(--font-serif);font-size:16px}.difference-note{margin:16px 0 0;color:#777;font-size:10px;line-height:1.7}
.program{background:#111;overflow:hidden}.program-head{display:flex;justify-content:space-between;align-items:end;margin:45px 0 80px}.program-head p{color:#aaa;line-height:1.9}.program-stories{border-top:1px solid var(--line)}.program-story{display:grid;grid-template-columns:1.15fr .85fr;min-height:460px;border-bottom:1px solid var(--line)}.program-story:nth-child(even) figure{order:2}.program-story:nth-child(even) .program-story-copy{order:1;border-left:0;border-right:1px solid var(--line)}.program-story figure{position:relative;overflow:hidden;margin:0;min-height:420px;background:#1b1714}.program-story figure:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,rgba(0,0,0,.42)),linear-gradient(0deg,rgba(0,0,0,.6),transparent 40%)}.program-story:nth-child(even) figure:after{background:linear-gradient(-90deg,transparent 55%,rgba(0,0,0,.42)),linear-gradient(0deg,rgba(0,0,0,.6),transparent 40%)}.program-story img{width:100%;height:100%;object-fit:cover;filter:saturate(.72) contrast(1.08) brightness(.72);transition:transform .7s ease,filter .5s ease}.program-story:nth-child(2) img{object-position:68% center}.program-story:nth-child(3) img{object-position:42% 65%;transform:scale(1.06)}.program-story:nth-child(4) img{object-position:78% center}.program-story:nth-child(5) img{object-position:52% 70%;transform:scale(1.04)}.program-story:hover img{transform:scale(1.035);filter:saturate(.95) contrast(1.05) brightness(.85)}.program-story figure figcaption{position:absolute;z-index:2;left:20px;bottom:18px;font-family:var(--font-display);font-size:9px;letter-spacing:.22em;color:var(--gold)}.program-story-copy{display:flex;flex-direction:column;justify-content:center;padding:55px clamp(34px,5vw,80px);border-left:1px solid var(--line);position:relative}.program-story-copy>span{position:absolute;right:28px;top:14px;font-family:var(--font-display);font-size:110px;line-height:1;color:rgba(200,154,72,.08)}.program-en{font-family:var(--font-display);font-size:12px!important;letter-spacing:.28em;color:var(--gold)!important;margin:0 0 20px!important}.program-story h3{font-family:var(--font-serif);font-size:clamp(28px,3vw,45px);line-height:1.35;margin:0 0 24px}.program-story-copy>p:last-child{max-width:460px;color:#999;font-size:14px;line-height:1.95;margin:0}.program-note{text-align:right;color:#777;font-size:11px;margin-top:16px;line-height:1.7}
.gallery{background:#090909;overflow:hidden}.gallery-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:58px}.gallery h2{font-family:var(--font-serif);font-size:clamp(40px,5vw,74px);line-height:1.25;margin:38px 0 0}.gallery-head>p{color:#999;font-size:14px;line-height:2}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:120px;gap:12px}.gallery-item{position:relative;overflow:hidden;margin:0;background:#1b1714}.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(0,0,0,.78));pointer-events:none}.gallery-item img{width:100%;height:100%;object-fit:cover;filter:saturate(.7) contrast(1.08) brightness(.72);transition:transform .6s ease,filter .4s ease}.gallery-item:hover img{transform:scale(1.035);filter:saturate(.95) contrast(1.06) brightness(.88)}.gallery-item figcaption{position:absolute;z-index:2;left:18px;bottom:15px;display:flex;align-items:baseline;gap:7px;font-family:var(--font-display)}.gallery-item figcaption span{font-size:8px;letter-spacing:.22em;color:var(--gold)}.gallery-item figcaption b{font-size:18px;font-weight:500}.gallery-item-1{grid-column:span 7;grid-row:span 4}.gallery-item-2{grid-column:span 5;grid-row:span 2}.gallery-item-3{grid-column:span 3;grid-row:span 2}.gallery-item-4{grid-column:span 2;grid-row:span 2}.gallery-item-5{grid-column:span 4;grid-row:span 3}.gallery-item-6{grid-column:span 4;grid-row:span 3}.gallery-item-7{grid-column:span 4;grid-row:span 3}.gallery-item-8{grid-column:span 5;grid-row:span 3}.gallery-item-9{grid-column:span 3;grid-row:span 3}.gallery-item-10{grid-column:span 4;grid-row:span 3}.gallery-item:nth-child(2n) img{object-position:70% center}.gallery-item:nth-child(3n) img{object-position:45% 65%;transform:scale(1.08)}.gallery-item:nth-child(5n) img{object-position:85% center}.gallery-note{text-align:right;color:#666;font-size:10px;letter-spacing:.06em;margin-top:16px}
.information{display:grid;grid-template-columns:1.05fr .95fr;background:var(--red)}.info-copy{padding-right:8vw}.information .section-kicker{color:#f6d3bd}.information h2{margin:40px 0 56px}.information dl{border-top:1px solid rgba(255,255,255,.35);margin-bottom:42px}.information dl div{display:grid;grid-template-columns:150px 1fr;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.25)}.information dt{font-family:var(--font-display);font-size:11px;letter-spacing:.18em;color:#f4bca9}.information dd{margin:0;line-height:1.7}.btn-outline{border:1px solid #fff}.info-visual{position:relative;overflow:hidden;min-height:720px;background:linear-gradient(145deg,#130a08,#201411)}.giant-kanji{position:absolute;font-family:var(--font-serif);font-weight:900;font-size:min(46vw,700px);line-height:1;color:rgba(200,154,72,.85);right:-8%;top:1%;text-shadow:0 0 80px rgba(200,154,72,.2)}.info-visual p{position:absolute;z-index:2;bottom:70px;left:60px;font-family:var(--font-display);font-size:34px;letter-spacing:.25em;line-height:1.1}
.groups{position:relative;background:#0b0b0b;overflow:hidden}.groups:before{content:"団";position:absolute;right:-7vw;top:-11vw;font-family:var(--font-serif);font-size:44vw;font-weight:900;color:rgba(200,154,72,.035);line-height:1}.groups>*{position:relative;z-index:1}.groups-topline{display:flex;align-items:center;justify-content:space-between;padding-bottom:28px;border-bottom:1px solid var(--line)}.groups-topline>p{margin:0;color:#777;font-size:11px;letter-spacing:.1em}.groups-hero{display:grid;grid-template-columns:1.08fr .92fr;gap:8vw;align-items:end;padding:72px 0 82px}.groups-en{margin:0 0 24px;font-family:var(--font-display);font-size:clamp(28px,4vw,62px);font-weight:600;line-height:.98;letter-spacing:.05em;color:transparent;-webkit-text-stroke:1px rgba(200,154,72,.7)}.groups h2{margin:0;font-family:var(--font-serif);font-size:clamp(44px,5vw,76px);line-height:1.3}.groups-copy{padding-left:42px;border-left:1px solid rgba(200,154,72,.5);color:#aaa;font-size:14px;line-height:2}.groups-lead{margin-top:0!important;color:#fff!important;font-family:var(--font-serif);font-size:21px!important;line-height:1.8!important}.group-benefits{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(200,154,72,.35);border-bottom:1px solid rgba(200,154,72,.35)}.group-benefits article{min-height:300px;padding:34px;border-right:1px solid rgba(200,154,72,.25)}.group-benefits article:last-child{border-right:0}.group-benefits span{font-family:var(--font-display);font-size:11px;color:var(--gold)}.group-benefits h3{font-family:var(--font-display);font-size:15px;letter-spacing:.2em;color:var(--gold);margin:28px 0 14px}.group-benefits b{display:block;font-family:var(--font-serif);font-size:25px;margin-bottom:22px}.group-benefits p{margin:0;color:#888;font-size:13px;line-height:1.9}.group-contact{margin-top:56px;padding:34px 38px;background:var(--paper);color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:40px;border-left:7px solid var(--gold)}.group-contact small{font-family:var(--font-display);font-size:9px;letter-spacing:.25em;color:#8c6a30}.group-contact h3{font-family:var(--font-serif);font-size:23px;margin:8px 0}.group-contact p{margin:0;color:#6a655d;font-size:12px}.group-contact-links{display:flex;align-items:center;gap:24px}.group-contact-links>a:first-child{min-width:170px}.group-contact-links a small{display:block}.group-contact-links a b{display:block;font-family:var(--font-display);font-size:20px;margin-top:3px}.btn-gold{background:var(--gold);color:#111;min-width:205px}
.access{background:var(--paper);color:var(--ink)}.access-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;margin-top:52px;align-items:center}.access h2{margin-bottom:34px}.access address{font-style:normal;font-size:16px;line-height:2}.contact{display:flex;flex-direction:column;font-family:var(--font-display);font-size:19px;line-height:1.7;margin:28px 0}.map-card{height:500px;background:#d9d2c7;position:relative;overflow:hidden;border:1px solid #c8c0b4;box-shadow:0 22px 55px rgba(16,16,16,.14)}.map-card iframe{display:block;width:100%;height:100%;border:0;filter:saturate(.78) contrast(1.03)}.map-label{position:absolute;left:18px;bottom:18px;z-index:2;background:rgba(9,9,9,.9);color:#fff;padding:13px 18px;border-left:4px solid var(--red);box-shadow:0 8px 25px rgba(0,0,0,.22);pointer-events:none}.map-label span{display:block;font-family:var(--font-display);font-size:8px;letter-spacing:.25em;color:var(--gold);margin-bottom:4px}.map-label b{font-family:var(--font-serif);font-size:14px;letter-spacing:.05em}
.faq{background:#0f0f0f}.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;margin-top:50px}.faq details{border-top:1px solid var(--line)}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{list-style:none;display:grid;grid-template-columns:50px 1fr 25px;align-items:center;cursor:pointer;padding:26px 0;font-size:15px}.faq summary::-webkit-details-marker{display:none}.faq summary span{color:var(--gold);font-family:var(--font-display);font-size:11px}.faq summary i{font-style:normal;font-size:22px;color:var(--red)}.faq details[open] summary i{transform:rotate(45deg)}.faq details p{color:#aaa;line-height:1.9;margin:0 0 26px 50px;max-width:620px;font-size:14px}
.final-cta{text-align:center;padding:130px 24px;background:var(--red);position:relative;overflow:hidden}.final-cta:before{content:"SUMO";position:absolute;font-family:var(--font-display);font-size:30vw;font-weight:700;color:rgba(0,0,0,.08);left:50%;top:50%;transform:translate(-50%,-50%)}.final-cta>*{position:relative}.final-cta>p{font-family:var(--font-display);font-size:11px;letter-spacing:.32em}.final-cta h2{font-family:var(--font-serif);font-size:clamp(42px,5.5vw,82px);line-height:1.3;margin:25px 0 42px}.final-actions{display:flex;justify-content:center;gap:14px}.btn-light{background:#fff;color:var(--red)}footer{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:30px;padding:55px max(5vw,28px);background:#070707;color:#aaa;font-size:12px;line-height:1.7}footer .brand{color:#fff}footer>small{font-family:var(--font-display);letter-spacing:.12em}.mobile-cta{display:none}
@media(max-width:900px){section[id]{scroll-margin-top:72px}.site-header{height:72px}.site-header nav,.nav-cta{display:none}.hero{min-height:690px}.hero-content{padding:145px 26px 100px}.hero h1{font-size:52px}.hero-note,.scroll{display:none}.intro-grid,.program-head,.access-grid,.faq-grid{grid-template-columns:1fr}.experience-grid{grid-template-columns:1fr 1fr}.experience-grid article:nth-child(2){border-right:0}.difference{grid-template-columns:1fr}.difference-visual{min-height:520px}.difference-visual:after{background:linear-gradient(0deg,rgba(9,9,9,.75),transparent 52%)}.difference-copy{padding:78px 42px}.information{grid-template-columns:1fr}.info-visual{min-height:430px}.info-copy{padding-right:28px}.program-head{align-items:start;gap:25px}.program-story{grid-template-columns:1fr;min-height:0}.program-story figure,.program-story:nth-child(even) figure{order:1;min-height:420px}.program-story .program-story-copy,.program-story:nth-child(even) .program-story-copy{order:2;border:0;border-top:1px solid var(--line);min-height:300px}.gallery-head{align-items:start;gap:30px}.gallery-grid{grid-auto-rows:90px}.gallery-item-1{grid-column:span 12;grid-row:span 4}.gallery-item-2,.gallery-item-3,.gallery-item-4,.gallery-item-5,.gallery-item-6,.gallery-item-7,.gallery-item-8,.gallery-item-9,.gallery-item-10{grid-column:span 6;grid-row:span 3}.groups-hero{grid-template-columns:1fr;gap:50px}.groups-copy{max-width:650px}.group-benefits{grid-template-columns:1fr}.group-benefits article{min-height:0;border-right:0;border-bottom:1px solid rgba(200,154,72,.25)}.group-benefits article:last-child{border-bottom:0}.group-contact{align-items:flex-start;flex-direction:column}.section-pad{padding:88px 28px}.statement-inner{align-items:flex-start;flex-direction:column;justify-content:center}.statement strong{align-self:flex-end}.faq-grid{gap:40px}footer{grid-template-columns:1fr;text-align:center;justify-items:center;padding-bottom:100px}.mobile-cta{display:flex;position:fixed;z-index:20;bottom:0;left:0;right:0;background:var(--red);height:58px;align-items:center;justify-content:center;gap:25px;font-size:13px;font-weight:700;letter-spacing:.08em}}
@media(max-width:560px){.brand b{font-size:15px}.brand-mark{width:38px;height:38px}.hero h1{font-size:42px}.hero-en{font-size:22px}.lead{font-size:14px}.hero-actions{align-items:flex-start;flex-direction:column;gap:12px}.experience-grid{grid-template-columns:1fr}.experience-grid article{border-right:0;border-bottom:1px solid #c8c0b4;min-height:260px}.difference-visual{min-height:330px}.difference-visual figcaption{left:20px;bottom:18px}.difference-copy{padding:62px 22px}.difference-en{font-size:30px}.difference h2{font-size:29px}.difference-lead{font-size:13px}.difference-points{grid-template-columns:1fr}.difference-points article+article{padding-left:0;border-left:0;border-top:1px solid rgba(200,154,72,.25)}.difference-points b{min-width:65px}.statement{height:430px}.statement strong{font-size:64px}.program-story figure,.program-story:nth-child(even) figure{min-height:270px}.program-story .program-story-copy,.program-story:nth-child(even) .program-story-copy{padding:42px 22px;min-height:260px}.program-story-copy>span{font-size:78px;right:14px}.gallery-head{display:block}.gallery-head>p{margin-top:24px}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:180px;gap:8px}.gallery-item-1{grid-column:1/-1;grid-row:span 2}.gallery-item-2,.gallery-item-3,.gallery-item-4,.gallery-item-5,.gallery-item-6,.gallery-item-7,.gallery-item-8,.gallery-item-9,.gallery-item-10{grid-column:span 1;grid-row:span 1}.gallery-item-10{grid-column:1/-1}.groups-topline{align-items:flex-start;flex-direction:column;gap:16px}.groups-hero{padding:55px 0}.groups-copy{padding-left:22px}.groups-lead{font-size:18px!important}.group-benefits article{padding:30px 20px}.group-contact{padding:28px 22px}.group-contact-links{width:100%;align-items:flex-start;flex-direction:column}.group-contact-links .btn{width:100%}.information dl div{grid-template-columns:110px 1fr}.info-visual{min-height:350px}.giant-kanji{font-size:90vw}.info-visual p{left:28px;bottom:35px}.map-card{height:350px}.faq summary{grid-template-columns:38px 1fr 20px}.faq details p{margin-left:38px}.final-cta{padding:95px 24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn,.timeline-row{transition:none}}

.event-details{background:#15110f;color:#fff}.details-head{display:grid;grid-template-columns:.8fr 1.2fr;gap:8vw;align-items:end;margin:45px 0 60px}.details-head h2,.operator h2{font-family:var(--font-serif);font-size:clamp(36px,4.2vw,66px);line-height:1.3;margin:0}.details-head p{color:#aaa;line-height:1.9;margin:0}.details-table{border-top:1px solid rgba(200,154,72,.45)}.details-row{display:grid;grid-template-columns:minmax(210px,.7fr) 1.3fr;border-bottom:1px solid var(--line)}.details-row>div{padding:22px 26px}.details-row>div:first-child{font-family:var(--font-serif);font-weight:700;color:#e7d2ad;border-right:1px solid var(--line)}.details-row>div:last-child{color:#bbb;line-height:1.7}.details-note{text-align:right;color:#777;font-size:11px;margin-top:18px}
.detail-lines{display:grid;gap:9px}.detail-lines p{display:grid;grid-template-columns:130px 1fr;gap:18px;margin:0}.detail-lines b{color:#fff;font-family:var(--font-serif)}.detail-lines small{display:block;margin-top:7px;padding:10px 12px;border-left:3px solid var(--gold);background:rgba(200,154,72,.08);color:#d2c4aa;line-height:1.8}.detail-copy{margin:0 0 8px}.detail-copy:last-child{margin-bottom:0}.detail-caution{margin:12px 0 0;padding:9px 12px;border-left:3px solid var(--red);background:rgba(181,25,23,.1);color:#ddd}
.faq summary h3{font:inherit;font-weight:500;margin:0}.operator{background:var(--paper);color:var(--ink)}.operator-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:8vw;margin-top:50px}.operator-grid>div>p{color:#777;line-height:1.8}.operator dl{margin:0;border-top:1px solid #c8c0b4}.operator dl div{display:grid;grid-template-columns:160px 1fr;padding:18px 0;border-bottom:1px solid #c8c0b4}.operator dt{font-size:12px;font-weight:700}.operator dd{margin:0;color:#625d56}.legal-link{display:flex;justify-content:flex-end;align-items:center;gap:25px;margin:34px 0 0}.legal-link a{font-weight:700;border-bottom:1px solid var(--red);padding-bottom:5px}.legal-link a span{color:var(--red);margin-left:10px}.legal-link small{color:#777}
@media(max-width:900px){.details-head,.operator-grid{grid-template-columns:1fr;gap:34px}.legal-link{align-items:flex-start;flex-direction:column;gap:12px}}
@media(max-width:560px){.details-row{grid-template-columns:1fr}.details-row>div{padding:16px 18px}.details-row>div:first-child{border-right:0;padding-bottom:4px}.details-row>div:last-child{padding-top:4px}.detail-lines p{grid-template-columns:1fr;gap:2px;margin-bottom:8px}.operator dl div{grid-template-columns:1fr;gap:7px}}
@media(max-width:1024px){
  .site-header{padding-right:0;background:rgba(7,7,7,.92);position:fixed;backdrop-filter:blur(12px)}
  .mobile-menu{display:block;margin-left:auto;height:72px}
  .mobile-menu:not([open]) nav{display:none}
  .mobile-menu summary{width:76px;height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;cursor:pointer;list-style:none;background:var(--red)}
  .mobile-menu summary::-webkit-details-marker{display:none}
  .menu-lines{width:25px;display:grid;gap:5px}
  .menu-lines i{display:block;height:1px;background:#fff;transition:transform .25s ease,opacity .25s ease}
  .mobile-menu summary small{font-family:var(--font-display);font-size:8px;letter-spacing:.22em}
  .mobile-menu[open] .menu-lines i:first-child{transform:translateY(6px) rotate(45deg)}
  .mobile-menu[open] .menu-lines i:nth-child(2){opacity:0}
  .mobile-menu[open] .menu-lines i:last-child{transform:translateY(-6px) rotate(-45deg)}
  .mobile-menu nav{position:fixed;top:72px;left:0;right:0;max-height:calc(100vh - 72px);overflow:auto;display:block;background:rgba(7,7,7,.98);border-top:1px solid var(--line);padding:12px 28px 28px;box-shadow:0 22px 55px rgba(0,0,0,.55)}
  .mobile-menu nav>a{display:flex;align-items:center;gap:20px;padding:18px 4px;border-bottom:1px solid var(--line);font-family:var(--font-serif);font-size:19px;letter-spacing:.08em;color:#fff}
  .mobile-menu nav>a span{font-family:var(--font-display);font-size:9px;color:var(--gold);letter-spacing:.15em}
  .mobile-menu nav .mobile-menu-contact{justify-content:space-between;margin-top:22px;padding:18px 20px;border:0;background:var(--red);font-family:inherit;font-size:13px;font-weight:700}
  .mobile-menu-contact b{font-size:18px}
}
.difference-visual:after{background:linear-gradient(90deg,transparent 58%,rgba(9,9,9,.62)),linear-gradient(0deg,rgba(0,0,0,.62),transparent 48%)}
.difference-visual img{object-position:61% center;filter:saturate(.9) contrast(1.06) brightness(.82)}
.difference-note strong{display:inline-block;margin-right:8px;color:var(--gold);font-family:var(--font-display);font-size:9px;letter-spacing:.14em}
.brand{gap:14px}.brand-logo{display:block;width:58px;height:54px;object-fit:contain;filter:invert(1);flex:0 0 auto}footer .brand-logo{width:64px;height:60px}@media(max-width:560px){.brand{gap:10px}.brand-logo{width:47px;height:44px}footer .brand-logo{width:58px;height:54px}}
.brand b{font-family:var(--font-display);font-size:17px;letter-spacing:.11em;line-height:1;white-space:nowrap}.brand small{font-family:var(--font-serif);font-size:10px;letter-spacing:.2em;color:#aaa;margin-top:6px;line-height:1.2}@media(max-width:560px){.brand b{font-size:13px;letter-spacing:.08em}.brand small{font-size:9px;letter-spacing:.16em;margin-top:5px}}
.mobile-menu-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.mobile-menu-actions>a{display:flex;align-items:center;justify-content:space-between;padding:17px 18px;font-size:12px;font-weight:700;letter-spacing:.06em;border:1px solid var(--gold)}.mobile-menu-actions>a:first-child{background:var(--red);border-color:var(--red)}.mobile-menu-actions .mobile-menu-contact{margin:0;background:transparent}.mobile-menu-actions b{font-size:16px}.mobile-cta>a{height:100%;flex:1;display:flex;align-items:center;justify-content:center;gap:18px}.mobile-cta>a+ a{background:#111;border-top:1px solid var(--gold)}
@media(max-width:900px){.header-actions{display:none}.mobile-cta{gap:0;padding:0}.final-actions{flex-wrap:wrap}}
@media(max-width:560px){.final-actions{display:grid}.final-actions .btn{width:min(100%,300px)}.hero-actions .btn{width:min(100%,290px)}.mobile-menu-actions{grid-template-columns:1fr}}

/* Version 56 — sumi-e dragon and tiger hero treatment. */
.hero-bg picture{display:block;width:100%;height:100%}
.hero-bg img{transform:scale(1.22);transform-origin:72% 57%}
.hero-bg:before{
  background:linear-gradient(90deg,rgba(0,0,0,.4) 0%,rgba(0,0,0,.2) 38%,rgba(0,0,0,.02) 64%,rgba(0,0,0,.18) 100%),linear-gradient(0deg,rgba(0,0,0,.72),transparent 42%)
}
.hero-bg:after{
  background:radial-gradient(circle at 72% 46%,transparent 0 22%,rgba(0,0,0,.07) 60%,rgba(0,0,0,.26) 100%)
}
.hero-grain{opacity:.1}
@media(max-width:900px){.hero-bg img{object-position:64% center;transform:scale(1.18);transform-origin:70% 58%}}
@media(max-width:560px){
  .hero-bg img{object-position:66% center;transform:scale(1.14);transform-origin:72% 58%}
  .hero-bg:before{
    background:linear-gradient(90deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.72) 48%,rgba(0,0,0,.38) 72%,rgba(0,0,0,.08) 100%),linear-gradient(0deg,rgba(0,0,0,.82) 0%,rgba(0,0,0,.2) 48%,rgba(0,0,0,.12) 100%)
  }
  .hero-bg:after{
    background:radial-gradient(circle at 88% 47%,transparent 0 18%,rgba(0,0,0,.08) 48%,rgba(0,0,0,.32) 100%)
  }
  .hero h1,.hero-manifesto,.hero-jp,.lead{text-shadow:0 3px 16px rgba(0,0,0,.95)}
}
.seating{background:radial-gradient(circle at 50% 45%,rgba(200,154,72,.08),transparent 42%),#0b0b0b;border-top:1px solid rgba(200,154,72,.2);border-bottom:1px solid rgba(200,154,72,.2)}.seating-head{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end;margin-bottom:62px}.seating h2{font-family:var(--font-serif);font-size:clamp(38px,4.8vw,72px);line-height:1.3;margin:36px 0 0}.seating-copy{padding-left:36px;border-left:1px solid rgba(200,154,72,.45)}.seating-copy p{max-width:580px;color:#aaa;font-size:14px;line-height:2;margin:0 0 28px}.seating-copy strong{color:var(--gold);font-family:var(--font-display);font-size:12px;letter-spacing:.08em}.seating-map{position:relative;margin:0;padding:14px;background:linear-gradient(135deg,rgba(200,154,72,.55),rgba(200,154,72,.08) 28%,rgba(255,255,255,.04) 72%,rgba(200,154,72,.48));box-shadow:0 35px 90px rgba(0,0,0,.55)}.seating-map:before,.seating-map:after{content:"";position:absolute;width:70px;height:70px;z-index:2;pointer-events:none}.seating-map:before{top:0;left:0;border-top:2px solid var(--gold);border-left:2px solid var(--gold)}.seating-map:after{right:0;bottom:0;border-right:2px solid var(--gold);border-bottom:2px solid var(--gold)}.seating-map img{display:block;width:100%;height:auto;background:#090909}.seating-map figcaption{display:flex;align-items:center;gap:28px;padding:18px 8px 5px;font-family:var(--font-display);font-size:9px;letter-spacing:.16em;color:var(--gold)}.seating-map figcaption span:before{content:"";display:inline-block;width:9px;height:9px;margin-right:9px;background:var(--red);border:1px solid var(--gold)}.seating-map figcaption span:nth-child(2):before{background:#eee8da}.seating-map figcaption small{margin-left:auto;color:#666;letter-spacing:.08em}
@media(max-width:900px){.seating-head{grid-template-columns:1fr;gap:38px}.seating-copy{padding-left:24px}.seating-map figcaption{flex-wrap:wrap}.seating-map figcaption small{width:100%;margin-left:0}}
@media(max-width:560px){.seating-head{margin-bottom:38px}.seating h2{font-size:36px}.seating-copy{padding-left:18px}.seating-copy .btn{width:100%;min-width:0}.seating-map{padding:6px}.seating-map figcaption{gap:12px 18px;padding:14px 8px 7px;font-size:8px}.seating-map figcaption small{line-height:1.6}}

/* Final gallery crops: keep faces and key action visible across the mosaic. */
.gallery-item.gallery-item-1 img{object-position:50% 48%;transform:none}
.gallery-item.gallery-item-2 img{object-position:52% 42%;transform:none}
.gallery-item.gallery-item-3 img{object-position:50% 46%;transform:none}
.gallery-item.gallery-item-4 img{object-position:48% 52%;transform:none}
.gallery-item.gallery-item-5 img{object-position:56% 50%;transform:none}
.gallery-item.gallery-item-6 img{object-position:52% 50%;transform:none}
.gallery-item.gallery-item-7 img{object-position:52% 44%;transform:none}
.gallery-item.gallery-item-8 img{object-position:50% 45%;transform:none}
.gallery-item.gallery-item-9 img{object-position:48% 48%;transform:none}
.gallery-item.gallery-item-10 img{object-position:50% 48%;transform:none}
.gallery-item:hover img{transform:scale(1.035)}
@media(max-width:560px){
  .gallery-item.gallery-item-2 img{object-position:50% 38%}
  .gallery-item.gallery-item-4 img{object-position:46% 50%}
  .gallery-item.gallery-item-5 img{object-position:62% 50%}
  .gallery-item.gallery-item-6 img{object-position:58% 50%}
  .gallery-item.gallery-item-8 img{object-position:50% 42%}
  .gallery-item.gallery-item-10 img{object-position:50% 48%}
}

/* Keep the focal action centered in the updated program photography. */
.program-story:nth-child(2) img{object-position:50% 58%;transform:none}
.program-story:nth-child(3) img{object-position:50% 52%;transform:scale(1.02)}
.program-story:nth-child(4) img{object-position:50% 50%;transform:none}
@media(max-width:560px){.program-story:nth-child(2) img{object-position:48% 58%}}

/* Two distinct ways to experience sumo. */
.experience-choice{position:relative;padding:115px max(6vw,28px) 105px;background:radial-gradient(circle at 50% 0,rgba(181,25,23,.16),transparent 34%),#0b0b0b;overflow:hidden;border-bottom:1px solid rgba(200,154,72,.2)}
.experience-choice:before{content:"CHOICE";position:absolute;left:50%;top:42px;transform:translateX(-50%);font-family:var(--font-display);font-size:clamp(110px,18vw,290px);font-weight:700;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(200,154,72,.07);white-space:nowrap}
.experience-choice>*{position:relative;z-index:1}
.experience-choice-head{display:grid;grid-template-columns:1.05fr .95fr;gap:6vw;align-items:end;margin-bottom:54px}
.experience-choice-head .section-kicker{grid-column:1/-1}.experience-choice-head h2{margin:18px 0 0;font-family:var(--font-serif);font-size:clamp(42px,5.3vw,78px);line-height:1.2}.experience-choice-head>p{margin:0 0 8px;padding-left:28px;border-left:1px solid rgba(200,154,72,.45);color:#aaa;font-size:14px;line-height:2}
.experience-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.choice-card{position:relative;min-height:580px;overflow:hidden;background:#17120f;margin:0}
.choice-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.9) contrast(1.04) brightness(.9);transition:transform .8s ease,filter .5s ease}
.choice-show img{object-position:50% 42%}.choice-training img{object-position:48% 50%}
.choice-card:hover img{transform:scale(1.035);filter:saturate(1) contrast(1.04) brightness(.96)}
.choice-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 34%,rgba(0,0,0,.9) 100%),linear-gradient(90deg,rgba(0,0,0,.18),transparent 58%)}
.choice-card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:var(--red);transform:scaleX(.15);transform-origin:left;transition:transform .45s ease}.choice-card:nth-child(2):after{background:var(--gold)}.choice-card:hover:after{transform:scaleX(1)}
.choice-number{position:absolute;right:24px;top:14px;font-family:var(--font-display);font-size:86px;line-height:1;color:rgba(255,255,255,.13)}
.choice-copy{position:absolute;left:clamp(24px,4vw,58px);right:28px;bottom:48px}.choice-copy>p{margin:0 0 16px;font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.25em;color:var(--gold)}.choice-copy h3{margin:0 0 24px;font-family:var(--font-serif);font-size:clamp(27px,2.7vw,43px);line-height:1.48;text-shadow:0 4px 25px #000}.choice-copy small{display:inline-block;padding:8px 11px;border:1px solid rgba(255,255,255,.4);font-family:var(--font-display);font-size:9px;letter-spacing:.2em;color:#ddd}
.choice-guaranteed{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:13px;margin-top:18px;padding-top:15px;border-top:1px solid rgba(200,154,72,.5);max-width:560px}.choice-guaranteed b{padding:6px 8px;background:var(--red);font-family:var(--font-display);font-size:8px;letter-spacing:.14em;white-space:nowrap}.choice-guaranteed span{color:#ddd;font-size:10px;line-height:1.65;letter-spacing:.025em}
.choice-statement{display:flex;justify-content:center;gap:24px;margin:48px 0 0;font-family:var(--font-serif);font-size:clamp(30px,4vw,60px);font-weight:900;line-height:1.3}.choice-statement span{color:#fff}.choice-statement strong{color:var(--gold)}
@media(max-width:900px){.experience-choice{padding:88px 28px 82px}.experience-choice-head{grid-template-columns:1fr;gap:20px}.experience-choice-head .section-kicker{grid-column:auto}.experience-choice-head>p{max-width:600px}.choice-card{min-height:500px}}
@media(max-width:650px){.experience-choice{padding:76px 20px 72px}.experience-choice-head{margin-bottom:38px}.experience-choice-head h2{font-size:40px}.experience-choice-head>p{padding-left:18px;font-size:13px}.experience-choice-grid{grid-template-columns:1fr}.choice-card{min-height:500px}.choice-number{font-size:66px}.choice-copy{left:24px;bottom:35px}.choice-copy>p{font-size:10px;letter-spacing:.17em}.choice-copy h3{font-size:27px}.choice-guaranteed{grid-template-columns:1fr;gap:9px}.choice-guaranteed b{width:max-content}.choice-statement{display:grid;gap:8px;margin-top:38px;font-size:clamp(27px,8vw,38px);text-align:center}}

/* English-first opening: Japanese is retained as a cultural accent, not a duplicate translation. */
@media(max-width:900px){
  .hero{height:auto;min-height:800px}
  .hero-content{padding-top:132px;padding-bottom:90px;max-width:720px}
  .hero h1{font-size:clamp(47px,9vw,70px)}
  .intro-grid{gap:48px}
}
@media(max-width:560px){
  .hero{min-height:860px}
  .hero-content{padding-top:122px;padding-bottom:120px}
  .hero h1{font-size:42px;line-height:1.02;margin-top:22px}
  .hero h1 span{font-size:.46em;letter-spacing:.12em}
  .hero-jp{font-size:12px;letter-spacing:.1em}
  .hero-manifesto{font-size:14px;letter-spacing:.055em}
  .lead{font-size:13px;line-height:1.7}
  .intro h2{font-size:39px}
  .intro h2 small{font-size:12px;line-height:1.7}
  .experience-grid article{min-height:0;padding-bottom:38px}
}

/* English-first site typography. Japanese remains a concise cultural accent. */
.section-jp{display:block;margin:0 0 17px;font-family:var(--font-serif);font-size:clamp(11px,.95vw,14px);font-weight:700;line-height:1.5;letter-spacing:.13em;color:var(--gold)}
.difference-jp{margin:34px 0 22px;font-family:var(--font-serif);font-size:14px;font-weight:700;letter-spacing:.14em;color:var(--gold)}
.difference h2{font-family:var(--font-display);font-size:clamp(34px,3.15vw,54px);font-weight:600;line-height:1.04;letter-spacing:.025em}
.difference h2 strong{display:block;margin-top:13px;font-size:.47em;line-height:1.35;letter-spacing:.12em}
.difference-points p{font-family:var(--font-sans);font-size:13px;line-height:1.5}
.experience-choice-head h2,.program h2,.seating h2,.gallery h2,.information h2,.details-head h2,.access h2,.faq h2,.operator h2,.final-cta h2{font-family:var(--font-display);font-weight:600;letter-spacing:.015em}
.experience-choice-head h2{font-size:clamp(42px,5vw,76px);line-height:1.02}
.choice-copy h3{font-family:var(--font-display);font-weight:500;line-height:1.12;letter-spacing:.015em}
.choice-statement{max-width:1240px;margin-left:auto;margin-right:auto;font-family:var(--font-display);font-size:clamp(28px,3.2vw,52px);line-height:1.08;letter-spacing:.015em}
.statement p{max-width:510px;font-size:clamp(25px,3vw,46px);letter-spacing:.06em}
.program-head{gap:7vw}.program-head h2{max-width:720px;line-height:1.02}.program-head>p{max-width:470px}
.program-jp{font-family:var(--font-serif);font-size:12px!important;font-weight:700;letter-spacing:.12em;color:var(--gold)!important;margin:0 0 19px!important}
.program-story h3{font-family:var(--font-display);font-size:clamp(30px,3vw,48px);font-weight:600;line-height:1.08;letter-spacing:.02em}
.seating h2,.gallery h2,.information h2{line-height:1.03}
.information h2{font-size:clamp(38px,4.1vw,64px)}
.group-benefits b,.group-contact h3{font-family:var(--font-display);font-weight:500;line-height:1.18}
.groups-jp{margin:25px 0 0;font-family:var(--font-serif);font-size:14px;font-weight:700;letter-spacing:.14em;color:var(--gold)}
.group-benefits b{font-size:24px}.group-contact h3{font-size:25px}
.details-head h2,.access h2,.faq h2,.operator h2{line-height:1.03}
.details-row>div:first-child{font-family:var(--font-display);font-weight:500;letter-spacing:.035em}
.access h2{font-size:clamp(40px,4.5vw,68px)}
.faq summary{line-height:1.45}.faq summary h3{font-family:var(--font-sans);font-weight:500}
.operator dt{font-family:var(--font-display);font-weight:500;letter-spacing:.04em}
.final-jp{display:block;margin:19px 0 0;font-family:var(--font-serif);font-size:13px;font-weight:700;letter-spacing:.13em;color:#f8d7ca}
.final-cta h2{line-height:1.03}
.mobile-menu nav>a{font-family:var(--font-display);font-weight:500;letter-spacing:.08em}

@media(max-width:900px){
  .program-head{gap:28px}
  .program-head>p{max-width:620px}
  .choice-statement{gap:14px}
}
@media(max-width:560px){
  .difference h2{font-size:34px}
  .experience-choice-head h2{font-size:39px}
  .choice-copy h3{font-size:30px}
  .choice-statement{font-size:29px;line-height:1.12}
  .program h2,.gallery h2,.information h2,.details-head h2,.access h2,.faq h2,.operator h2,.final-cta h2{font-size:38px}
  .group-benefits b{font-size:22px}
  .final-jp{font-size:11px;line-height:1.7}
}

/* Version 49 — restrained Japanese editorial direction. */
.hero-jp-rail{
  position:absolute;
  z-index:3;
  top:154px;
  right:max(3.2vw,22px);
  display:block;
  padding:6px 0 6px 12px;
  border-left:1px solid rgba(200,154,72,.5);
  background:transparent;
  writing-mode:vertical-rl;
  font-family:var(--font-serif);
  font-size:11px;
  font-weight:700;
  line-height:1.8;
  letter-spacing:.2em;
  color:#eee8df;
  text-shadow:0 2px 14px rgba(0,0,0,.95)
}
.hero-jp-rail:before{
  content:"";
  position:absolute;
  top:-11px;
  left:-3px;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--red);
  box-shadow:0 0 0 4px rgba(181,25,23,.15)
}
.hero-jp-rail span{color:var(--gold)}
.hero-jp-rail i{margin:.6em 0;color:#a8987f;font-style:normal}
.hero-jp-rail b{font-weight:700}
.experience-grid article{min-height:350px}
.experience-grid h3{margin-bottom:24px}

.difference-copy{padding-right:clamp(76px,7vw,118px)}
.difference-jp{
  position:absolute;
  z-index:3;
  top:104px;
  right:25px;
  margin:0;
  padding:2px 11px 2px 0;
  border-right:1px solid rgba(200,154,72,.72);
  border-left:0;
  background:transparent;
  writing-mode:vertical-rl;
  font-size:11px;
  line-height:1.7;
  letter-spacing:.2em;
  color:#c9aa6a
}

.experience-choice-title{
  display:grid;
  grid-template-columns:54px minmax(0,1fr);
  gap:25px;
  align-items:start
}
.experience-choice-head .experience-choice-title h2{margin:0}
.choice-jp-mark{
  width:50px;
  height:144px;
  display:grid;
  place-items:center;
  padding:12px 8px;
  border:1px solid rgba(200,154,72,.72);
  outline:0;
  background:#8d1412;
  writing-mode:vertical-rl;
  font-family:var(--font-serif);
  font-size:12px;
  font-weight:900;
  line-height:1;
  letter-spacing:.18em;
  color:#fff;
  transform:none;
  box-shadow:inset 0 0 0 4px rgba(0,0,0,.12)
}

.statement:before{
  content:"";
  width:min(38vw,560px);
  height:min(38vw,560px);
  right:7vw;
  top:50%;
  border:1px solid rgba(200,154,72,.13);
  border-radius:50%;
  color:transparent;
  font-size:0;
  transform:translateY(-50%);
  box-shadow:0 0 0 42px rgba(200,154,72,.018),0 0 0 88px rgba(200,154,72,.012)
}
.statement p{position:relative;padding-left:34px}
.statement p:before{
  content:"";
  position:absolute;
  left:0;
  top:.2em;
  bottom:.18em;
  width:5px;
  background:linear-gradient(var(--red) 0 56%,var(--gold) 56% 100%)
}

.program-story h3{margin-bottom:24px}
.groups-en{margin-bottom:0}
.groups:before{
  content:"120";
  right:-.04em;
  top:-.2em;
  font-family:var(--font-display);
  font-size:42vw;
  font-weight:700;
  letter-spacing:-.09em;
  color:rgba(200,154,72,.032)
}

.final-jp{
  width:auto;
  margin:20px auto 0;
  padding:0;
  border:0;
  background:transparent;
  color:#fff0e7;
  transform:none;
  box-shadow:none;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:16px
}
.final-jp:before,.final-jp:after{content:"";width:48px;height:1px;background:rgba(255,255,255,.55)}

@media(max-width:900px){
  .hero-content{padding-right:84px}
  .hero-jp-rail{top:116px;right:20px;padding:5px 0 5px 10px;font-size:10px}
  .difference-copy{padding-right:42px}
  .difference-jp{
    position:relative;
    top:auto;
    right:auto;
    width:max-content;
    margin:30px 0 22px;
    padding:0 0 0 14px;
    border:0;
    border-left:1px solid rgba(200,154,72,.72);
    background:transparent;
    writing-mode:horizontal-tb;
    font-size:12px
  }
  .statement:before{width:58vw;height:58vw;right:-4vw}
}

@media(max-width:560px){
  .hero-content{padding-right:66px}
  .hero-jp-rail{top:104px;right:14px;padding:4px 0 4px 8px;font-size:9px;letter-spacing:.13em}
  .hero-jp-rail:before{top:-8px;left:-3px;width:6px;height:6px}
  .experience-grid article{min-height:0}
  .difference-copy{padding-right:22px}
  .experience-choice-title{grid-template-columns:1fr;gap:22px}
  .choice-jp-mark{
    width:max-content;
    height:auto;
    padding:9px 14px;
    writing-mode:horizontal-tb;
    font-size:12px;
    letter-spacing:.16em
  }
  .statement p{padding-left:20px}
  .statement p:before{width:3px}
  .statement:before{width:88vw;height:88vw;right:-34vw}
  .final-jp{max-width:92%;font-size:10px;line-height:1.7;gap:10px}
  .final-jp:before,.final-jp:after{width:22px}
}

/* Version 64 — every guest becomes the challenger. */
.hero{
  height:min(860px,calc(100svh - 88px));
  min-height:720px;
  border-bottom:1px solid rgba(200,154,72,.48)
}
.hero-bg picture{display:block;width:100%;height:100%}
.hero-bg img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:58% center;
  transform:none;
  filter:saturate(.94) contrast(1.03)
}
.hero-bg:before{
  background:linear-gradient(90deg,rgba(0,0,0,.34) 0%,rgba(0,0,0,.17) 36%,transparent 58%),linear-gradient(0deg,rgba(0,0,0,.55) 0%,transparent 34%)
}
.hero-bg:after{
  background:radial-gradient(circle at 78% 48%,transparent 0 22%,rgba(0,0,0,.05) 54%,rgba(0,0,0,.26) 100%)
}
.hero-grain{z-index:1;opacity:.07;pointer-events:none}
.hero-content{
  position:absolute;
  z-index:3;
  top:51%;
  left:max(6.2vw,42px);
  width:min(45vw,760px);
  max-width:none;
  padding:0;
  transform:translateY(-43%)
}
.hero .eyebrow{
  margin:0 0 19px;
  font-size:11px;
  font-weight:600;
  letter-spacing:.36em;
  text-shadow:0 3px 18px #000
}
.hero h1.hero-challenge-title{
  margin:0;
  font-family:Georgia,"Times New Roman",var(--font-serif);
  font-size:1rem;
  font-weight:700;
  line-height:.92;
  letter-spacing:.015em;
  text-transform:uppercase;
  text-wrap:balance
}
.hero-challenge-title span,.hero-challenge-title em{display:block;margin:0;font-style:normal}
.hero-challenge-title .hero-watch,.hero-challenge-title .hero-power{
  font-size:clamp(30px,3vw,52px);
  line-height:1.04;
  letter-spacing:.055em
}
.hero-challenge-title .hero-power{margin-top:7px;color:var(--gold)}
.hero-challenge-title .hero-become,.hero-challenge-title>em{
  font-size:clamp(54px,5.4vw,96px);
  line-height:.94;
  letter-spacing:.005em
}
.hero-challenge-title .hero-become{margin-top:13px;color:#f4eee2}
.hero-challenge-title>em{margin-top:4px;color:var(--gold)}
.hero-divider{
  width:min(100%,720px);
  height:1px;
  margin:24px 0 22px;
  background:linear-gradient(90deg,var(--gold),rgba(200,154,72,.32))
}
.hero-guarantee{
  max-width:680px;
  margin:0 0 18px;
  font-family:Georgia,"Times New Roman",var(--font-serif);
  font-size:clamp(13px,1.12vw,18px);
  font-weight:700;
  line-height:1.55;
  letter-spacing:.115em;
  text-transform:uppercase;
  color:#f1eadb;
  text-shadow:0 3px 18px #000
}
.hero-wrestles{
  width:min(100%,590px);
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:15px 24px;
  border:1px solid var(--gold);
  background:linear-gradient(110deg,#a80d0b,#c91d18 52%,#8e0a09);
  box-shadow:inset 0 0 0 4px rgba(0,0,0,.14),0 18px 45px rgba(0,0,0,.38);
  font-family:Georgia,"Times New Roman",var(--font-serif);
  font-size:clamp(23px,2.15vw,38px);
  font-weight:700;
  line-height:1;
  letter-spacing:.045em;
  color:#fff7e9;
  transition:transform .22s ease,filter .22s ease,box-shadow .22s ease
}
.hero-wrestles span{font-family:var(--font-display);font-size:.55em;color:#f2cc76}
.hero-wrestles:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:inset 0 0 0 4px rgba(0,0,0,.12),0 22px 52px rgba(181,25,23,.3)}
.hero-wrestles:focus-visible{outline:3px solid #fff;outline-offset:4px}
.nav-cta{white-space:nowrap}

@media(max-width:1100px) and (min-width:561px){
  .hero-content{left:32px;width:52vw}
  .hero-challenge-title .hero-watch,.hero-challenge-title .hero-power{font-size:clamp(27px,3.2vw,38px)}
  .hero-challenge-title .hero-become,.hero-challenge-title>em{font-size:clamp(48px,5.8vw,68px)}
  .hero-guarantee{font-size:12px}
  .hero-wrestles{min-height:60px;font-size:24px}
  .nav-cta{padding:0 18px;font-size:10px}
}

@media(max-width:560px){
  .hero{height:920px;min-height:920px}
  .hero-bg img{object-position:center top;transform:none;filter:saturate(.92) contrast(1.04)}
  .hero-bg:before{
    background:linear-gradient(180deg,rgba(0,0,0,.03) 0%,rgba(0,0,0,.1) 31%,rgba(0,0,0,.7) 43%,rgba(3,3,3,.96) 64%,#050505 100%)
  }
  .hero-bg:after{background:linear-gradient(90deg,rgba(0,0,0,.14),transparent 40%,rgba(0,0,0,.08))}
  .hero-content{
    top:43.5%;
    left:20px;
    right:20px;
    width:auto;
    padding:0 0 104px;
    transform:none
  }
  .hero .eyebrow{margin-bottom:13px;font-size:9px;letter-spacing:.3em}
  .hero-challenge-title .hero-watch,.hero-challenge-title .hero-power{font-size:25px;line-height:1.03;letter-spacing:.045em}
  .hero-challenge-title .hero-power{margin-top:5px}
  .hero-challenge-title .hero-become,.hero-challenge-title>em{font-size:43px;line-height:.94;letter-spacing:0}
  .hero-challenge-title .hero-become{margin-top:10px}
  .hero-challenge-title>em{margin-top:4px}
  .hero-divider{margin:17px 0 15px}
  .hero-guarantee{max-width:350px;margin-bottom:15px;font-size:12px;line-height:1.55;letter-spacing:.075em}
  .hero-wrestles{width:100%;max-width:360px;min-height:57px;padding:13px 17px;font-size:19px;letter-spacing:.025em;white-space:nowrap}
  .information>*{min-width:0}
  .information h2{font-size:34px}
}

@media(max-width:370px){
  .hero{height:900px;min-height:900px}
  .hero-content{top:50%;left:16px;right:16px}
  .hero-challenge-title .hero-watch,.hero-challenge-title .hero-power{font-size:22px}
  .hero-challenge-title .hero-become,.hero-challenge-title>em{font-size:38px}
  .hero-guarantee{font-size:11px}
  .hero-wrestles{font-size:18px}
}

.tsf-hero-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  width: 100%;
  min-height: 640px;
  aspect-ratio: 2 / 1;
  background: #090806;
  border-bottom: 1px solid rgba(200, 154, 72, .48);
  color: #f4eee2;
}

.tsf-hero-artwork {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.tsf-hero-artwork picture,
.tsf-hero-artwork img {
  display: block;
  width: 100%;
  height: 100%;
}

.tsf-hero-artwork img {
  object-fit: cover;
  object-position: right center;
}

.tsf-hero-content {
  position: relative;
  width: 39.2%;
  margin-left: 6.4%;
  padding-top: 10.8%;
  padding-bottom: 7.5%;
}

.tsf-hero-title {
  margin: 0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 700;
  text-transform: uppercase;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .36);
}

.tsf-hero-title > span,
.tsf-hero-title > em {
  display: block;
  font-style: normal;
}

.tsf-hero-watch,
.tsf-hero-power {
  font-size: clamp(1.625rem, 3.18vw, 4rem);
  line-height: 1.1;
  letter-spacing: .075em;
}

.tsf-hero-power {
  margin-top: .12em;
  color: #d8ab54;
}

.tsf-hero-become,
.tsf-hero-challenger {
  font-size: clamp(3rem, 5.4vw, 6.75rem);
  line-height: 1.02;
  letter-spacing: -.018em;
  white-space: nowrap;
}

.tsf-hero-become { margin-top: .06em; }
.tsf-hero-challenger { color: #d8ab54; }

.tsf-hero-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: clamp(18px, 1.3vw, 26px) 0 clamp(18px, 1.45vw, 29px);
}

.tsf-hero-divider::before,
.tsf-hero-divider::after {
  content: "";
  height: 1px;
  flex: 1;
  background: #a47c34;
}

.tsf-hero-divider span {
  width: 10px;
  height: 10px;
  flex-shrink: 0;
  background: #d8ab54;
  transform: rotate(45deg);
}

.tsf-hero-guarantee {
  margin: 0 0 clamp(16px, 1.05vw, 22px);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(.875rem, 1.12vw, 1.4rem);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: .085em;
  text-align: center;
  text-transform: uppercase;
  color: #eee0b9;
}

.tsf-hero-guarantee span { display: block; }

.tsf-hero-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 62px;
  padding: .35em .5em .4em;
  border: 1px solid #c39841;
  background: #ae0905;
  box-shadow: inset 0 0 0 3px rgba(0, 0, 0, .12), 0 8px 28px rgba(0, 0, 0, .25);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.5rem, 2.74vw, 3.5rem);
  line-height: 1.1;
  letter-spacing: .01em;
  text-align: center;
  color: #fff0d6;
  transition: background-color .2s ease, box-shadow .2s ease;
}

.tsf-hero-cta:hover { background: #c51c0c; }
.tsf-hero-cta:focus-visible { outline: 3px solid #fff0d6; outline-offset: 5px; }

@media (min-width: 901px) and (max-width: 1279px) {
  .tsf-hero-artwork img { object-fit: contain; object-position: right bottom; }
  .tsf-hero-content { width: 44%; margin-left: 4.5%; padding-top: 150px; }
  .tsf-hero-watch, .tsf-hero-power { font-size: 3.1vw; }
  .tsf-hero-become, .tsf-hero-challenger { font-size: 5.75vw; }
  .tsf-hero-guarantee { font-size: .875rem; letter-spacing: .07em; }
  .tsf-hero-cta { font-size: 2.65vw; }
}

/* Keep both opponents together on narrow screens; never cover them with copy. */
@media (max-width: 900px) {
  .tsf-hero-hero {
    min-height: 0;
    aspect-ratio: auto;
    padding-top: 72px;
    background: #090806;
  }

  .tsf-hero-artwork {
    position: relative;
    inset: auto;
    width: 100%;
    max-height: 570px;
    aspect-ratio: 960 / 832;
    z-index: auto;
  }

  .tsf-hero-artwork img { object-position: center bottom; }

  .tsf-hero-content {
    width: auto;
    max-width: 620px;
    margin: 0 auto;
    padding: 22px 24px 86px;
  }

  .tsf-hero-watch, .tsf-hero-power {
    font-size: clamp(1.5rem, 4.8vw, 2.4rem);
    line-height: 1.06;
    letter-spacing: .065em;
  }

  .tsf-hero-become, .tsf-hero-challenger {
    font-size: clamp(2.6rem, 8.3vw, 4.3rem);
    line-height: 1.02;
    letter-spacing: -.025em;
  }

  .tsf-hero-become { margin-top: .1em; }
  .tsf-hero-divider { margin: 18px 0; }
  .tsf-hero-guarantee { font-size: 1rem; line-height: 1.55; letter-spacing: .07em; }
  .tsf-hero-cta { min-height: 58px; font-size: clamp(1.4rem, 4.9vw, 2.15rem); }
}

@media (max-width: 560px) {
  .tsf-hero-content { padding: 18px 20px 82px; }
  .tsf-hero-watch, .tsf-hero-power { font-size: clamp(1.35rem, 6.5vw, 2.25rem); }
  .tsf-hero-become, .tsf-hero-challenger { font-size: clamp(2.2rem, 11.15vw, 3.8rem); }
  .tsf-hero-divider { margin: 17px 0 15px; }
  .tsf-hero-guarantee { font-size: .875rem; line-height: 1.5; letter-spacing: .055em; margin-bottom: 17px; }
  .tsf-hero-guarantee span { display: inline; }
  .tsf-hero-cta { min-height: 54px; font-size: clamp(1.125rem, 5.45vw, 1.8rem); }
}

@media (prefers-reduced-motion: reduce) {
  .tsf-hero-cta { transition: none; }
}

/* Leave room for FILMS without compressing the existing navigation labels. */
@media(min-width:901px) and (max-width:1024px){.site-header{height:72px}.site-header .desktop-nav,.site-header .header-actions{display:none}section[id]{scroll-margin-top:72px}}
