/* Entry terms, generative AI policy and privacy policy (OMNI TOKYO 2027).
   Typography follows the OMNI brand guidelines like the festival page: Cormorant Garamond for
   every Latin character (Shippori Mincho B1 for Japanese), never bold, hairline rules, no
   gradients, shadows, rounded corners or unicode icons. Colours are OMNI TOKYO's gold and washi paper. */
:root{--latin:'Cormorant Garamond','Shippori Mincho B1','Yu Mincho',serif;--night:#0a0a09;--paper:#f0ece3;--gold:#c9a354;--muted:#b4b0a7;--line:#cec7b8;--label-ink:#6f6448}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;font-synthesis:none}
/* Lining figures so dates, versions and section numbers read at a glance. */
body{margin:0;background:var(--paper);color:#22231f;font-family:var(--latin);letter-spacing:.03em;font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased}
body[data-language="en"]{letter-spacing:.01em}
h1,h2,h3,h4{font-weight:400}
b,strong,th{font-weight:500}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}
a:hover{color:#94722d}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid #ac822f;outline-offset:5px}
.skip{position:fixed;top:-100px;left:20px;z-index:100;background:var(--paper);color:#22231f;padding:14px}
.skip:focus{top:12px}
/* Read by assistive technology only (the English title inside the h1). */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Header and title band */
.site-header{position:sticky;top:0;z-index:10;background:var(--night);color:var(--paper);border-bottom:1px solid #34342d;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px clamp(20px,5vw,90px)}
.brand{display:inline-flex;align-items:center;gap:12px;font-family:var(--latin);font-size:21px;font-weight:400;letter-spacing:0;text-decoration:none;line-height:1;color:#efeae0}
.brand:hover{color:#efeae0}
.brand-mark{display:block;width:auto;height:30px;margin-top:1px}
.brand small{display:block;font-family:var(--latin);font-size:10px;font-weight:400;letter-spacing:.04em;color:var(--muted);margin-top:5px;font-variant-numeric:oldstyle-nums}
.back{font-size:14px;color:#d6bf8a}
.back:hover{color:#efe3c4}
.hero{background:var(--night);color:var(--paper);padding:76px max(24px,calc((100vw - 1220px)/2)) 62px}
.eyebrow{font-family:var(--latin);font-size:13px;font-weight:400;letter-spacing:.04em;color:var(--gold)}
h1{font-family:var(--latin);font-size:clamp(38px,6vw,64px);font-weight:300;letter-spacing:.04em;line-height:1.2;margin:24px 0 12px}
.subtitle{font-family:var(--latin);font-style:italic;font-size:clamp(20px,2.2vw,26px);letter-spacing:.01em;color:#cfc6b3;margin:0}
body[data-language="en"] .subtitle{font-size:clamp(30px,3.4vw,40px);font-style:normal;font-weight:300;color:var(--paper)}
.hero-meta{font:400 14px/1.8 var(--latin);font-variant-numeric:lining-nums;color:var(--muted);margin-top:30px}
.hero-meta .ja,.hero-meta .en{display:block}
.hero .en{color:inherit;font-size:inherit;line-height:inherit}

/* Contents and body */
.layout{max-width:1320px;margin:auto;display:grid;grid-template-columns:270px minmax(0,1fr);gap:72px;padding:56px 50px 100px}
.toc{position:sticky;top:110px;align-self:start;max-height:calc(100dvh - 130px);overflow:auto}
.toc summary{font-size:14px;letter-spacing:.04em;cursor:pointer;padding-bottom:18px;border-bottom:1px solid #a59a83}
/* No disclosure triangle (no unicode icons); the label itself toggles the list. */
.toc summary{list-style:none}
.toc summary::-webkit-details-marker{display:none}
.toc summary:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.toc nav{padding-top:12px}
.toc a{display:flex;gap:13px;text-decoration:none;padding:11px 2px;border-bottom:1px solid #d6d0c2;font-size:13px;line-height:1.6}
.toc .n{font:italic 400 15px/1.7 var(--latin);font-variant-numeric:lining-nums;color:var(--label-ink)}
.toc .en{display:block;font-size:14px;line-height:1.4;color:#625d53;margin-top:3px}
.content{min-width:0;max-width:850px}
.language-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:25px}
.language-tools button{cursor:pointer;background:transparent;border:1px solid #b8af9c;padding:9px 12px;color:#504b3f;font:400 14px var(--latin);letter-spacing:.01em;transition:background .24s,color .24s}
.language-tools button[aria-pressed="true"]{background:var(--night);color:var(--paper);border-color:var(--night)}
.language-tools .print{margin-left:auto}
.intro{padding-bottom:32px;border-bottom:1px solid #a59a83}
.intro p,section p{font-size:14px;line-height:2;overflow-wrap:anywhere}
.en{color:#6d685e;font-size:16px;line-height:1.55}
.intro .en,section p.en{font-size:16px;line-height:1.55;margin-top:8px}
.scope{border-left:1px solid #ba9752;padding:4px 0 4px 20px;margin-top:25px}
.scope p{font-size:13px;line-height:1.9}
.scope p.en{font-size:15px;line-height:1.55}
.content section{padding:43px 0 38px;border-bottom:1px solid var(--line)}
/* Section labels: a short italic line in sentence case, as in the brand guidelines. */
.section-label{font-family:var(--latin);font-style:italic;font-size:17px;font-weight:400;letter-spacing:.01em;color:var(--label-ink);margin-bottom:14px}
h2{font-family:var(--latin);font-size:clamp(21px,2.4vw,28px);font-weight:400;line-height:1.55;letter-spacing:.04em;margin:0 0 25px}
h2 .en{display:block;font-family:var(--latin);font-size:22px;line-height:1.3;letter-spacing:.01em;color:var(--label-ink);margin-top:7px}
ul{padding-left:22px}
li{padding-left:4px;margin:20px 0}
li::marker{color:#a28343}
li p{margin:4px 0}
section>p{margin:20px 0 0}
.endnote{padding:28px 0 0;font-size:13px;color:#625d53;line-height:1.9}
.endnote a{color:#7a622f}
.endnote .en{font-size:15px}

/* Footer */
.site-footer{background:#050605;color:#8a877f;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:34px 5vw;font:400 14px/1.8 var(--latin);letter-spacing:.01em}
.site-footer .foot-brand{display:flex;align-items:center;gap:18px}
.site-footer .foot-mark{display:block;width:auto;height:44px}
.site-footer .foot-brand .ja,.site-footer .foot-brand .en{display:block}
.site-footer .en{color:inherit;font-size:inherit;line-height:inherit}
.site-footer .links{display:flex;flex-wrap:wrap;align-items:center;gap:6px 1.5em}
.site-footer a{color:#cfbb91}
.site-footer a[aria-current="page"]{color:#8a877f;text-decoration:none}

/* Language display */
body[data-language="ja"] .en{display:none}
body[data-language="en"] .ja{display:none}
body[data-language="en"] h2 .en{font-size:30px;color:#22231f}
body[data-language="en"] .toc .en{font-size:16px;color:#22231f}
body[data-language="en"] section p.en,body[data-language="en"] .intro .en{font-size:17px;color:#34342e}

@media(max-width:900px){.layout{grid-template-columns:1fr;gap:28px;padding:30px 24px 65px}.toc{position:static;max-height:none}.toc nav{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.hero{padding:48px 24px}.site-header{padding:16px 24px}.content{max-width:none}}
@media(max-width:480px){.toc nav{grid-template-columns:1fr}.site-footer{flex-direction:column;align-items:flex-start;padding:32px 24px 40px}.back{font-size:13px}.language-tools .print{margin-left:0}.content section{padding-top:34px}.intro p,section p{font-size:13px}.hero-meta{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{html{scroll-behavior:auto}.site-header,.toc,.language-tools,.skip,.site-footer{display:none}.hero{background:#fff;color:#000;padding:10px 0 25px}.hero p,.hero-meta,.subtitle,.eyebrow{color:#333}.hero h1{font-size:30px}.layout{display:block;padding:0}.content{max-width:none}section{break-inside:auto}h2{break-after:avoid}.en{color:#444}body{background:#fff}a{color:#000;text-decoration:none}}
