:root{color-scheme:dark;--ink:#eee9df;--muted:#a9b6ca;--line:#657a9855;--gold:#cfbd96;--bg:#050a16;font-family:-apple-system,BlinkMacSystemFont,"Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}html{min-width:280px;scroll-behavior:smooth}body{margin:0;min-height:100vh;min-height:100svh;line-height:1.9;background:linear-gradient(180deg,#050914 0%,#0d182c 70%,#1d2b41 100%);background-attachment:fixed}body[data-sky=day]{background-image:linear-gradient(180deg,#101c31 0%,#24394e 62%,#3b3948 100%)}body[data-sky=sunset]{background-image:linear-gradient(180deg,#0a1125,#202b46 70%,#594352)}body[data-sky=civil]{background-image:linear-gradient(180deg,#080e20,#172640 85%,#38394e)}body[data-sky=dawn]{background-image:linear-gradient(165deg,#0b152b,#19364d 75%,#334653)}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(1px 1px at 12% 22%,#eee9df 60%,transparent),radial-gradient(1px 1px at 82% 37%,#eee9df 60%,transparent),radial-gradient(2px 2px at 66% 65%,#e2d3ad 20%,transparent);z-index:0}#sky{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}a{color:inherit;text-underline-offset:.35em}button,a,select{touch-action:manipulation}button,select{font:inherit}button{color:inherit;cursor:pointer;border:1px solid var(--line);background:transparent;min-height:48px;padding:12px 20px;border-radius:3px}button:hover{border-color:#b6c4d6;background:#ffffff08}button:disabled{opacity:.5;cursor:wait}a:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid #e1ce9d;outline-offset:5px}button.primary{border-color:#cfbd9680;background:#ddc9a410;color:#f6e8ce}button.text{border-color:transparent;color:var(--muted);text-decoration:underline;text-underline-offset:5px;padding:8px 6px;font-size:.875rem;min-height:44px}a.quiet{color:var(--muted);font-size:.875rem;display:inline-flex;align-items:center;min-height:44px}p{margin:0 0 1.5em}h1,h2,h3{font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;font-weight:400}h1{font-size:clamp(1.55rem,3.5vw,2.4rem);line-height:1.8;letter-spacing:.09em;margin:0 0 20px;text-wrap:balance}h2{font-size:1.4rem;line-height:1.7;letter-spacing:.07em}small,.small{font-size:.875rem;color:var(--muted)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip{position:absolute;top:-80px;left:16px;z-index:9;padding:12px;background:#0c1528}.skip:focus{top:12px}
header,main,footer{position:relative;z-index:1}header{max-width:1200px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:calc(22px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 20px max(24px,env(safe-area-inset-left))}.wordmark{font:1.3rem Georgia,serif;letter-spacing:.38em;text-decoration:none;display:flex;align-items:center;gap:14px}.wordmark img{width:28px;height:28px}.header-about{font-size:.875rem;color:var(--muted);text-decoration:none;min-height:44px;display:flex;align-items:center}main{max-width:900px;margin:0 auto;padding:0 max(24px,env(safe-area-inset-right)) 40px max(24px,env(safe-area-inset-left))}.experience{max-width:600px;min-height:640px;min-height:calc(100svh - 210px);margin:auto;padding:40px 0 60px;text-align:center}.eyebrow{color:var(--gold);font-size:.75rem;letter-spacing:.2em;margin:0 0 20px}.hero-symbol{width:105px;height:105px;margin:10px auto 34px;opacity:.8}.intro{font-family:"Yu Mincho",serif;letter-spacing:.07em;font-size:1rem;color:#d5dce7;margin-bottom:30px}.location-copy{max-width:350px;margin:0 auto 25px;font-size:.875rem;color:var(--muted)}.stack{display:flex;flex-direction:column;align-items:center;gap:8px}.stack>.primary{width:min(100%,330px)}.timer{font-variant-numeric:tabular-nums;font-size:.875rem;color:#c2ccda;margin:22px 0 28px}.time{font-size:2.8rem;font-family:Georgia,serif;color:#efe3cc;letter-spacing:.04em;line-height:1.3}.route-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 25px;margin:24px 0 30px;font-size:.875rem}.route-nav a{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--muted);border-bottom:1px solid transparent}.route-nav a[aria-current=page]{color:var(--ink);border-color:var(--gold)}
.sign-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:480px;margin:auto}.sign{padding:12px 2px 10px;min-height:130px;background:#08122333}.glyph{width:68px;height:62px;display:block;margin:0 auto 6px;overflow:visible}.glyph polyline{stroke:#859bb7;stroke-width:1;fill:none}.glyph circle{fill:#ded4bd}.sign-name{display:block;font-size:.9375rem;letter-spacing:.06em}.sign-dates{display:block;font:12px Georgia,serif;color:var(--muted);letter-spacing:.02em}.selection h1{font-size:1.7rem}.selection .eyebrow{margin-bottom:8px}.selection .intro{margin-bottom:20px}.reading{max-width:510px;margin:auto;text-align:left}.reading-heading{text-align:center;margin:0 0 60px}.reading-heading .glyph{width:148px;height:135px;margin-bottom:25px}.reading-heading .star-copy{font-size:1.25rem;line-height:2.1}.reading-block{padding:0 0 32px;margin:0 0 32px;border-bottom:1px solid var(--line)}.reading-block h2{font-size:.875rem;font-family:inherit;color:var(--gold);letter-spacing:.18em;margin:0 0 18px}.reading-block p{font-size:1rem;line-height:2.15;margin:0}.word-block{text-align:center;margin:55px 0 65px}.word-block .word{font-family:"Yu Mincho",serif;font-size:3.5rem;letter-spacing:.18em;padding-left:.18em;margin:20px 0 30px}.reading-end{text-align:center;margin:70px 0 15px}.sky-link{font-family:"Yu Mincho",serif;font-size:1.7rem;text-decoration:none;display:inline-block;padding:15px}.sky-link:after{content:' ↗';font-size:.8rem;color:var(--muted)}.dawn-button{display:block;margin:40px auto;color:#f8e6b7;border:none}.dawn-button:before{content:'✧';font-size:2rem;display:block;text-shadow:0 0 22px #ead8b8}.notice{max-width:420px;margin:20px auto 0;color:var(--muted);font-size:.875rem;text-align:center}.connection{margin:10px auto;color:var(--muted);font-size:.875rem}footer{max-width:1000px;margin:auto;padding:25px 24px calc(24px + env(safe-area-inset-bottom));font-size:.75rem;color:var(--muted);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}footer nav{display:flex;gap:18px;flex-wrap:wrap}footer a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none;font-size:.875rem}.byline{letter-spacing:.12em}
dialog{color:var(--ink);background:#101b2e;border:1px solid #62728a;box-shadow:0 35px 120px #0009;border-radius:8px;padding:30px;width:min(480px,calc(100% - 32px));max-height:calc(100dvh - 40px);overflow-y:auto}dialog::backdrop{background:#020611b8;backdrop-filter:blur(5px)}dialog h2{margin:0 0 20px}dialog p{font-size:.9375rem}dialog .stack{align-items:stretch}.dialog-close{display:block;margin:18px auto 0}.select-label{display:block;font-size:.875rem;margin-bottom:8px}select{display:block;width:100%;min-height:52px;background:#0c1424;color:var(--ink);border:1px solid #899ab0;padding:12px;margin-bottom:22px;border-radius:3px;font-size:1rem}.card-preview{display:block;max-width:100%;max-height:45dvh;width:auto;margin:15px auto;object-fit:contain;border:1px solid var(--line)}.card-formats{display:flex;gap:12px}.card-formats button{flex:1}.card-formats button[aria-pressed=true]{border-color:var(--gold);color:#f5e7c8}.share-body{white-space:pre-wrap;font-size:.875rem;padding:16px;border:1px solid var(--line);overflow-wrap:anywhere}.article{max-width:620px;margin:45px auto 70px;line-height:2.15}.article h1{font-size:1.8rem}.article h2{margin-top:45px}.article p{margin:0 0 26px}.article .creator{border-top:1px solid var(--line);padding-top:25px;font-size:.875rem}.article + .experience{border-top:1px solid var(--line);padding-top:60px}.offline-label{color:var(--gold);font-size:.875rem}.preview-label{position:relative;text-align:center;color:#bac8d9;font-size:.75rem;margin:0;padding:4px;background:#16233a}.preview-label a{margin-left:12px}.mono{font-family:Georgia,serif;letter-spacing:.08em}
header{flex-wrap:wrap;gap:8px 20px}.selection h1{font-size:1.4rem}.selection{padding-top:25px}.selection .route-nav{margin:12px 0 22px}.selection .glyph polyline{stroke-dasharray:300;animation:join-stars 1.8s ease-out both}@keyframes join-stars{from{stroke-dashoffset:300}to{stroke-dashoffset:0}}
@media(min-width:768px){.experience{padding-top:65px}.sign-grid{gap:14px;max-width:510px}.sign{min-height:145px}.hero-symbol{margin-bottom:42px;width:125px;height:125px}.intro{font-size:1.1rem}.selection h1{font-size:2rem}.reading-heading{margin-top:10px}.reading-heading .star-copy{font-size:1.5rem}dialog{padding:36px}}
@media(max-width:360px){header{padding-left:20px;padding-right:20px}main{padding-left:20px;padding-right:20px}.sign-grid{gap:7px}.sign{min-height:116px}.glyph{width:57px;height:54px}.sign-name{font-size:.875rem}.sign-dates{font-size:12px}.experience{padding-top:22px}.selection h1{font-size:1.4rem}h1{font-size:1.4rem}.hero-symbol{margin-bottom:24px}.route-nav{gap:18px}dialog{padding:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
@media(forced-colors:active){button,select,dialog{border:1px solid ButtonText}.sign-grid button{background:Canvas}.glyph polyline{stroke:CanvasText}.glyph circle{fill:CanvasText}.primary{color:ButtonText!important}#sky{display:none}body{background:Canvas;color:CanvasText}}
.dawn-sky-slot{height:116px;display:flex;justify-content:flex-end;align-items:center;padding-right:18px;margin:-12px 0 12px}.dawn-star{display:flex;flex-direction:column;align-items:center;justify-content:center;width:156px;min-height:92px;padding:0;border:0;background:transparent;position:relative}.dawn-star:hover{background:transparent;border:0}.dawn-light{display:block;position:relative;width:56px;height:56px;border-radius:50%;background:radial-gradient(circle,#fff8dd 0 2px,#ffeac485 3px,#edcf8240 7px,#e2c58712 17px,transparent 28px);animation:dawn-breathe 6.7s ease-in-out infinite}.dawn-light:before,.dawn-light:after{content:"";position:absolute;left:50%;top:50%;background:linear-gradient(transparent,#fff8dc,transparent);transform:translate(-50%,-50%)}.dawn-light:before{width:1px;height:28px}.dawn-light:after{height:1px;width:25px;background:linear-gradient(90deg,transparent,#fff8dc,transparent)}.dawn-label{font-size:.75rem;letter-spacing:.1em;color:#e0d2b4;line-height:1.8}.dawn-star:focus-visible{outline:2px solid #e1ce9d;outline-offset:3px;border-radius:4px}@keyframes dawn-breathe{0%,65%,100%{opacity:.78;transform:scale(.96)}80%{opacity:1;transform:scale(1.06)}}
.photo-viewer{width:min(680px,100%);max-height:100dvh;height:100dvh;margin:auto;padding:calc(16px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));border-radius:0}.photo-tools{display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;top:0;background:#101b2e;z-index:1;padding-bottom:10px}.photo-tools h2{margin:0;font-size:1.1rem}.photo-viewer img{display:block;width:100%;height:auto;max-width:540px;margin:auto;-webkit-touch-callout:default;user-select:auto}.photo-viewer>p{text-align:center;margin:12px auto 20px}.photo-tools button{min-width:64px}.word:focus{outline:none}body:has(#photo-save:not([hidden])) #file-share{background:transparent;border-color:var(--line)}
@media(prefers-reduced-motion:reduce){.dawn-light{animation:none}}
.photo-viewer{position:fixed;inset:0;margin:0 auto;max-width:min(680px,100vw)}
.is-hidden .dawn-light{animation-play-state:paused}
.photo-viewer[open]{display:flex;flex-direction:column;overflow:hidden}.photo-tools{position:static;flex-shrink:0}.photo-viewer>p{flex-shrink:0}.photo-stage{min-height:0;overflow:auto;overscroll-behavior:contain}
