/* Countdown scene: carved timber, brass and a separately prepared portrait asset. */
.nm-hero{--nm-gold:#96bddb;--nm-light:#eaf3fa;--nm-muted:#9cb2c8;--halo-strength:.32;position:relative;isolation:isolate;z-index:2;overflow:hidden;padding:108px 48px 34px;background:#07182e;color:var(--nm-light);background-image:radial-gradient(ellipse at 80% 36%,#275c9655,transparent 58%),radial-gradient(ellipse at 24% 95%,#16396155,transparent 50%),linear-gradient(120deg,#08162b,#102f50 54%,#091c36);border-bottom:1px solid #7197bf66}
.nm-hero::before{content:"";position:absolute;inset:22px;border:1px solid #80b3da26;pointer-events:none;z-index:-1}
.nm-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#040e2255,transparent 30%,transparent 76%,#040e2266)}
.nm-texture{position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.14;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='.75' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.4' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.nm-light{position:absolute;inset:0;pointer-events:none;z-index:-1;background:conic-gradient(from 170deg at 76% -15%,transparent 0deg,#b6e0ff05 12deg,transparent 17deg,#b6e0ff05 24deg,transparent 30deg,#b6e0ff07 36deg,transparent 45deg);filter:blur(7px)}
.nm-layout{position:relative;max-width:1270px;margin:0 auto;display:grid;grid-template-columns:1.08fr 1fr;gap:20px;align-items:center}
.nm-hero:not(:has(.nm-portrait-frame img)) .nm-layout{grid-template-columns:1fr;max-width:640px}
.nm-hero:not(:has(.nm-portrait-frame img)) .nm-portrait-stage{display:none}
.nm-copy{position:relative;z-index:3;text-align:center;padding:12px 0 4px;min-width:0}
.nm-event{display:flex;justify-content:center;align-items:center;gap:16px;font-size:12px;letter-spacing:.16em;color:#b5d2e8;margin:0 0 24px}
.nm-event>span{width:24px;height:1px;background:#95bed766}
.nm-hero h1{font-family:'Noto Serif JP',serif;font-weight:500;color:var(--nm-light);font-size:clamp(34px,3.6vw,50px);line-height:1.65;letter-spacing:.13em;margin:0 0 18px;text-shadow:0 2px 25px #0005}
.nm-lead{font-size:13px;font-weight:300;letter-spacing:.2em;color:#b5c8db;margin:0 0 23px}
.nm-date{margin:0 0 22px}
.nm-date time{display:flex;justify-content:center;align-items:baseline;gap:14px}
.nm-date-main{font:500 45px/1.2 'Cormorant Garamond',Georgia,serif;letter-spacing:.04em;color:#c0dcf1}
.nm-date-day{font-size:11px;border:1px solid #94b9d466;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;align-self:center;color:#adcfe8}
.nm-date-hour{font:500 32px/1.2 'Cormorant Garamond',Georgia,serif;color:#c0dcf1}
.nm-date-zone{display:block;font-size:9px;letter-spacing:.15em;color:#9cb7cf;margin-top:7px}
.nm-timepiece{position:relative;margin:-2px -22px -5px}
.nm-clock-caption{font-family:'Noto Serif JP',serif;font-size:11px;letter-spacing:.2em;color:#b9d5e9;margin:0;position:relative;z-index:2}
.nm-clock{position:relative;container-type:inline-size;width:100%;aspect-ratio:3/2;margin-top:-12px}
.nm-clock-case{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;clip-path:polygon(1% 76%,3.8% 70%,4.5% 29%,1.5% 24%,7% 15%,10% 11%,13% 11%,14% 12%,86% 12%,87% 11%,90% 11%,93% 15%,98.5% 24%,95.5% 29%,96.2% 70%,99% 76%,99% 84%,96% 84%,97% 88%,96% 89%,90% 89%,89% 87%,90% 84%,10% 84%,11% 87%,10% 89%,4% 89%,3% 88%,4% 84%,1% 84%)}
.nm-countdown{position:absolute;inset:0;isolation:isolate}
.nm-unit{position:absolute;top:36%;height:24%;width:12%;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#382b20;text-shadow:0 1px 0 #fff7;gap:0}
.nm-unit:nth-child(1){left:17.3%}.nm-unit:nth-child(2){left:35.1%}.nm-unit:nth-child(3){left:52.85%}.nm-unit:nth-child(4){left:70.5%}
.nm-unit>[data-time]{font-family:'Cormorant Garamond',Georgia,serif;font-size:10.2cqw;font-weight:600;font-variant-numeric:lining-nums tabular-nums;line-height:1.05;letter-spacing:-.045em;padding-right:.04em;mix-blend-mode:multiply}
.nm-unit small{font-family:'Noto Serif JP',serif;font-size:1.9cqw;font-weight:600;letter-spacing:.15em;margin-top:1.2cqw;line-height:1.4;color:#604d38}
.nm-cta{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:54px;max-width:100%;width:350px;padding:12px 20px;border:1px solid #98c0dc;background:#b5d6ed;color:#102b48!important;font-size:13px;font-weight:600;letter-spacing:.07em;text-decoration:none;box-shadow:0 5px 25px #030c2055;transition:background .25s,box-shadow .25s}
.nm-cta:hover{background:#d0e7f7;box-shadow:0 6px 26px #96bddb22}.nm-play{font-size:10px}.nm-cta svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.3;margin-left:5px}
.nm-cta:focus-visible{outline:2px solid #d7efff;outline-offset:5px}
.nm-portrait-stage{height:760px;min-width:0;position:relative;align-self:center}
.nm-portrait-light{position:absolute;inset:5% -14% 3%;background:radial-gradient(ellipse at 50% 46%,#539de566 0%,#3b79b335 25%,#3060901a 48%,transparent 70%);filter:blur(24px);opacity:var(--halo-strength);animation:nmBreath 10s ease-in-out infinite alternate;pointer-events:none}
.nm-portrait-frame{position:absolute;inset:-10px -8% 38px;display:flex;justify-content:center;align-items:center;z-index:2;pointer-events:none}
.nm-portrait-frame img{display:block;height:100%;max-width:100%;object-fit:contain;animation:nmPortraitBreath 9s ease-in-out infinite alternate}
.nm-ground-light{position:absolute;bottom:23px;left:15%;width:70%;height:50px;background:radial-gradient(ellipse,#629edf26,transparent 67%);filter:blur(6px);pointer-events:none}
.nm-portrait-caption{position:absolute;bottom:-16px;left:0;right:0;font-family:'Noto Serif JP',serif;font-size:14px;font-weight:400;letter-spacing:.18em;color:#b7d6ec;text-align:center;z-index:3}
.nm-calendar{display:flex;align-items:center;justify-content:center;gap:35px;max-width:1120px;margin:32px auto 0;padding-top:24px;border-top:1px solid #91bbdf26;position:relative;z-index:3}
.nm-calendar-label,.nm-calendar-note{font-family:'Noto Serif JP',serif;font-size:10px;letter-spacing:.1em;color:#a4bfd5}
.nm-calendar ol{list-style:none;display:flex;gap:29px;margin:0;padding:0}
.nm-calendar li{display:flex;flex-direction:column;align-items:center;gap:9px;position:relative;color:#829bb3}
.nm-calendar li span{font:500 16px/1.2 'Cormorant Garamond',Georgia,serif}
.nm-calendar li i{width:4px;height:4px;transform:rotate(45deg);border:1px solid #799aba}
.nm-calendar li.is-past{color:#a7cce6}.nm-calendar li.is-past i{background:#94b8d5;border-color:#94b8d5}
.nm-calendar li.is-current{color:#c7e7fb}.nm-calendar li.is-current i{background:#c7e7fb;border-color:#c7e7fb;box-shadow:0 0 7px #c7e7fb99}
.nm-calendar li.is-current::after{content:"";position:absolute;width:18px;height:18px;border:1px solid #96c4e777;transform:rotate(45deg);bottom:-7px}
.nm-dust{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.nm-dust i{position:absolute;width:2px;height:2px;background:#a2d8f5;border-radius:50%;opacity:0;animation:nmDust 13s linear infinite;box-shadow:0 0 8px #87c9ff}
.nm-dust i:nth-child(1){left:62%;top:18%;animation-delay:-3s}.nm-dust i:nth-child(2){left:80%;top:54%;animation-delay:-6s}.nm-dust i:nth-child(3){left:87%;top:25%;animation-delay:-8s}.nm-dust i:nth-child(4){left:65%;top:70%;animation-delay:-1s}.nm-dust i:nth-child(5){left:76%;top:36%;animation-delay:-11s}.nm-dust i:nth-child(6){left:95%;top:63%;animation-delay:-4s}.nm-dust i:nth-child(7){left:54%;top:43%;animation-delay:-7s}.nm-dust i:nth-child(8){left:90%;top:79%;animation-delay:-9s}.nm-dust i:nth-child(9){left:68%;top:42%;animation-delay:-2s}.nm-dust i:nth-child(10){left:84%;top:14%;animation-delay:-5s}.nm-dust i:nth-child(11){left:56%;top:78%;animation-delay:-10s}.nm-dust i:nth-child(12){left:73%;top:66%;animation-delay:-12s}
@keyframes nmDust{0%,100%{opacity:0;transform:translate(0,14px)}30%,65%{opacity:.45}90%{transform:translate(12px,-40px)}}
@keyframes nmBreath{from{opacity:var(--halo-strength);transform:scale(.96)}to{opacity:calc(var(--halo-strength) + .12);transform:scale(1.04)}}
@keyframes nmPortraitBreath{from{transform:translateY(0)}to{transform:translateY(-5px)}}
.nm-noscript{text-align:center;font-size:12px;padding-top:14px;color:#adbed1}
.nm-guild-intro{min-height:0;padding-top:55px;padding-bottom:55px}.nm-guild-intro .hero-grid-layout{min-height:0}.nm-guild-intro .hero-logo{max-height:160px;object-fit:contain}.nm-guild-intro .hero-scroll{display:none}.nm-guild-intro .hero-left{gap:18px}
@media(min-width:1600px){.nm-hero{padding-top:126px}.nm-layout{max-width:1360px}.nm-portrait-stage{height:800px}.nm-copy{padding-bottom:20px}}
@media(max-width:1100px) and (min-width:801px){.nm-hero{padding-left:25px;padding-right:25px}.nm-layout{gap:0;grid-template-columns:1.15fr 1fr}.nm-portrait-stage{height:650px}.nm-timepiece{margin-left:-10px;margin-right:-10px}.nm-hero h1{font-size:36px}.nm-calendar{gap:22px}.nm-calendar ol{gap:23px}}
@media(max-width:800px){
.nm-hero{padding:100px 22px 26px}.nm-hero::before{inset:12px}.nm-layout{display:flex;flex-direction:column;gap:25px;max-width:520px}
.nm-copy{padding:0;width:100%}.nm-event{font-size:10px;letter-spacing:.09em;gap:10px;margin-bottom:19px}.nm-event>span{width:16px}
.nm-hero h1{font-size:clamp(30px,8vw,40px);line-height:1.65;letter-spacing:.1em;margin-bottom:15px}.nm-lead{font-size:11px;margin-bottom:19px}
.nm-date{margin-bottom:20px}.nm-date-main{font-size:38px}.nm-date-hour{font-size:28px}.nm-date-zone{font-size:8px}.nm-date-day{width:21px;height:21px;font-size:10px}
.nm-timepiece{margin:0 -18px -4px}.nm-clock-caption{font-size:10px}.nm-clock{margin-top:0}
.nm-cta{width:310px;min-height:51px;font-size:12px;gap:10px}
.nm-portrait-stage{width:100%;height:540px;max-width:410px;margin-top:6px}.nm-portrait-frame{inset:0 -2% 33px}.nm-portrait-caption{font-size:12px;bottom:-12px}.nm-portrait-light{inset:0 -15% 0}
.nm-calendar{margin-top:28px;padding-top:22px;display:flex;flex-direction:column;gap:15px}.nm-calendar-label{font-size:9px}.nm-calendar ol{gap:27px}.nm-calendar-note{font-size:10px;padding-top:7px}.nm-calendar li span{font-size:15px}
.nm-dust i:nth-child(3n){left:25%;top:60%}.nm-dust i:nth-child(3n+1){top:70%}.nm-dust i:nth-child(3n+2){top:85%}
.nm-guild-intro{padding-top:42px;padding-bottom:40px}
}
@media(max-width:370px){.nm-hero{padding-left:18px;padding-right:18px}.nm-event{font-size:9px;gap:7px}.nm-calendar ol{gap:21px}.nm-portrait-stage{height:490px}.nm-timepiece{margin-left:-13px;margin-right:-13px}}
@media(prefers-reduced-motion:reduce){.nm-hero *{animation:none!important;transition:none!important}.nm-dust i{opacity:.25}.nm-portrait-light{opacity:var(--halo-strength)}}
/* Event and countdown are the two primary messages. */
.nm-event{font-size:18px;letter-spacing:.12em;margin-bottom:16px;color:#c0dcf1}
.nm-hero h1{font-size:clamp(54px,5vw,72px);font-weight:600;line-height:1.32;letter-spacing:.1em;margin-bottom:20px}
.nm-lead{font-size:15px;font-weight:400;letter-spacing:.06em;color:#bfd3e4;margin-bottom:22px}
.nm-date-main{font-size:52px}.nm-date-hour{font-size:38px}.nm-date-day{font-size:13px;width:26px;height:26px}.nm-date-zone{font-size:11px}
.nm-clock-caption{font-size:20px;letter-spacing:.07em;font-weight:600;color:#c8e0f0;margin-top:28px}
.nm-unit small{font-size:2.25cqw;letter-spacing:.08em}
.nm-cta{font-size:15px;min-height:56px}
.nm-calendar-label,.nm-calendar-note{font-size:12px}
@media(max-width:1100px) and (min-width:801px){.nm-hero h1{font-size:56px}.nm-clock-caption{font-size:18px}.nm-lead{font-size:13px}}
@media(max-width:800px){
.nm-event{font-size:15px;margin-bottom:12px}.nm-hero h1{font-size:clamp(42px,12vw,60px);line-height:1.28;letter-spacing:.08em;margin-bottom:17px}
.nm-lead{font-size:13px;letter-spacing:.025em;margin-bottom:17px}
.nm-date-main{font-size:43px}.nm-date-hour{font-size:32px}.nm-date-day{font-size:12px;width:24px;height:24px}.nm-date-zone{font-size:10px}
.nm-clock-caption{font-size:16px;letter-spacing:.035em;margin-top:23px}
.nm-cta{font-size:14px;min-height:54px}.nm-calendar-label,.nm-calendar-note{font-size:11px}
}
.nm-portrait-light{background:radial-gradient(ellipse at 50% 43%,#4b94d3c0 0%,#2f659d80 28%,#234c7b42 49%,transparent 71%)}
@media(min-width:801px){
.nm-hero{padding-top:94px}
.nm-hero h1{font-size:clamp(54px,4.45vw,68px);line-height:1.22;margin-bottom:23px}
.nm-event{margin-bottom:12px}
.nm-date{margin-bottom:12px}
.nm-clock-caption{margin-top:20px}
.nm-clock{max-width:600px;margin-left:auto;margin-right:auto}
.nm-portrait-stage{height:700px}
}
/* Seven cumulative layers, revealed by the existing Japan-date clock. */
.nm-circle{position:absolute;z-index:1;left:50%;top:47%;width:112%;max-width:none;height:auto;aspect-ratio:1;transform:translate(-50%,-50%);overflow:visible;pointer-events:none;fill:none;stroke:#9fcfee;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 3px #8fd1ff66) drop-shadow(0 0 10px #66b5f529)}
.nm-circle-rotor{transform-origin:300px 300px;animation:nmCircleTurn 240s linear infinite}
.nm-circle-layer{opacity:0;transition:opacity 2.4s ease}
.nm-circle-layer.is-visible{opacity:.62}
.nm-circle-layer[data-circle-day="0"].is-visible{opacity:.7}
.nm-circle-layer[data-circle-day="4"],.nm-circle-layer[data-circle-day="6"]{stroke-width:.85}
.nm-circle-layer[data-circle-day="5"]{stroke-width:1.25}
@keyframes nmCircleTurn{to{transform:rotate(360deg)}}
@media(max-width:800px){.nm-circle{width:112%;top:47%;stroke-width:1.4}.nm-circle-layer[data-circle-day="4"],.nm-circle-layer[data-circle-day="6"]{stroke-width:1.1}}
@media(prefers-reduced-motion:reduce){.nm-circle-rotor{animation:none}.nm-circle-layer{transition:none}}
/* The image asset contains its own safe outline and transparent exterior. */
.nm-portrait-frame{mix-blend-mode:normal}
.nm-portrait-frame img{filter:none}
/* Keep the waiting-room banner beside the event date, above the clock. */
.nm-hero{padding-top:82px;padding-bottom:24px}
.nm-event{font-size:16px;margin-bottom:8px}
.nm-hero h1{font-size:clamp(44px,4.2vw,60px);line-height:1.16;margin-bottom:16px}
.nm-date{margin-bottom:12px}
.nm-cta{min-height:50px;margin-bottom:14px}
.nm-clock-caption{font-size:18px;margin-top:6px}
.nm-clock{max-width:520px;margin-left:auto;margin-right:auto;transform-origin:50% 88%}
.nm-portrait-stage{height:620px}
.nm-portrait-frame{bottom:0}
.nm-calendar{margin-top:16px;padding-top:18px}
.nm-clock-trigger{position:absolute;inset:11% 1% 10%;z-index:5;display:block;border:0;padding:0;background:transparent;cursor:pointer;-webkit-tap-highlight-color:transparent}
.nm-clock-trigger:focus-visible{outline:2px solid #bce2fc;outline-offset:3px;border-radius:3px}
.nm-clock-trigger:disabled{cursor:default}
.nm-winder{position:absolute;z-index:4;right:12%;bottom:19%;width:8%;pointer-events:none}
.nm-winder svg{display:block;width:100%;height:auto;transform-origin:50% 50%;filter:drop-shadow(0 2px 2px #0008)}
.nm-clock-case{transition:filter .2s}
.nm-clock.is-winding{animation:nmClockNudge .9s ease both}
.nm-clock.is-winding .nm-winder svg{animation:nmWindKey .85s cubic-bezier(.2,.7,.2,1) both}
.nm-clock.is-winding .nm-clock-case{filter:brightness(1.1)}
.nm-clock-hint{position:relative;margin:-26px 0 0;text-align:center;font-size:11px;line-height:1.5;letter-spacing:.04em;color:#adc3d6;min-height:17px}
@keyframes nmClockNudge{0%,100%{transform:rotate(0)}20%{transform:rotate(-1deg)}45%{transform:rotate(.8deg)}70%{transform:rotate(-.35deg)}}
@keyframes nmWindKey{to{transform:rotate(540deg)}}
@media(min-width:801px) and (max-height:780px){.nm-hero{padding-top:76px}.nm-hero h1{font-size:46px}.nm-event{font-size:14px}.nm-date-main{font-size:42px}.nm-date-hour{font-size:32px}.nm-clock{max-width:450px}.nm-portrait-stage{height:540px}.nm-calendar{margin-top:10px}}
@media(max-width:800px){.nm-hero{padding-top:80px}.nm-event{font-size:14px}.nm-hero h1{font-size:42px;line-height:1.2;margin-bottom:15px}.nm-cta{min-height:50px;margin-bottom:12px}.nm-clock-caption{font-size:15px}.nm-portrait-stage{height:510px}.nm-portrait-frame{bottom:0}.nm-layout{gap:18px}.nm-clock-hint{font-size:10px;margin-top:-16px}.nm-calendar{margin-top:18px}.nm-winder{width:9%}}
@media(max-width:800px) and (max-height:700px){.nm-hero{padding-top:74px}.nm-hero h1{font-size:36px}.nm-date-main{font-size:36px}.nm-date-hour{font-size:28px}.nm-clock{max-width:340px}}
