/* Palette and type stacks follow https://arsnova.tokyo/assets/styles.css.
   The existing phone-only layout and tap targets are preserved. */
:root{
 --ink:#111111;--muted:#555555;--accent:#111111;--line:#e5e5e5;
 --paper:#ffce00;--white:#ffffff;--warm:#ffce00;--warm-ink:#111111;
 --surface-soft:#fafafa;--border-strong:#333333;
 --headergrad-start:rgba(194,198,249,0.68);--headergrad-end:rgba(218,239,236,0.92);
 --font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans JP","Hiragino Sans","Yu Gothic",sans-serif;
 --font-heading:-apple-system,"SF Pro Display","Hiragino Sans","Segoe UI","Yu Gothic UI","Meiryo",Roboto,"Noto Sans JP","Noto Sans",system-ui,sans-serif;
 --app-width:480px;--bar-height:70px;font-family:var(--font-body);color:var(--ink);font-synthesis:none
}
*{box-sizing:border-box}html{background:#fafafa;scroll-padding-top:0;-webkit-text-size-adjust:100%}body{margin:0 auto;max-width:var(--app-width);min-height:100dvh;background:var(--paper);font-size:16px;line-height:1.8;padding-bottom:calc(78px + env(safe-area-inset-bottom));box-shadow:0 0 0 1px #e5e5e5}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button{border:0}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #111111;outline-offset:4px}button,input{border-radius:0}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--font-heading);font-weight:400;line-height:1.55;letter-spacing:.08em}img{display:block;max-width:100%}svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}[hidden]{display:none!important}#main{outline:none;min-height:45vh}.skip{position:fixed;top:-70px;left:20px;z-index:100;background:#fff;padding:12px}.skip:focus{top:4px}
.appbar{height:var(--bar-height);position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:8px;background:linear-gradient(to bottom right,var(--headergrad-start),var(--headergrad-end)),#fff;padding:8px 16px;border-bottom:1px solid var(--line)}.app-title{display:flex;flex:1;flex-direction:column;line-height:1.5;min-width:0}.app-title>span{font-size:11px;color:var(--muted);letter-spacing:.07em}.app-title strong{font-family:var(--font-heading);font-size:17px;font-weight:400;letter-spacing:.04em;white-space:nowrap}.icon-button{height:44px;width:44px;display:grid;place-items:center;border-radius:50%;flex:none}.icon-button span{display:flex}.icon-button:hover{background:var(--paper)}#header-back{margin-left:-8px}.library-link{color:var(--muted);margin-right:-6px}.draft-bar{padding:9px 18px;background:#ffce00;font-size:10px;color:#333333;display:flex;align-items:center;gap:6px;line-height:1.4}.draft-dot{height:5px;width:5px;background:#111111;border-radius:50%;flex:none}.draft-extra{margin-left:auto;font-size:9px;color:#333333}
.wrap,.article{padding:0 20px}.home-intro{padding:28px 0 22px}.home-intro h1{font-size:22px;letter-spacing:.08em}.home-intro>p{font-size:13px;color:var(--muted);margin-top:5px}.search-box{position:relative;display:flex;align-items:center;gap:10px;border:1px solid #333333;background:#fff;border-radius:12px;padding:0 13px;margin-top:21px;min-height:50px}.search-box>svg{color:#555555;width:19px;height:19px}.search-box input{background:transparent;border:0;outline:none;min-width:0;flex:1;width:100%;font-size:16px;height:50px;color:var(--ink)}.search-box input::-webkit-search-cancel-button{display:none}.search-box input::placeholder{font-size:14px;color:#666666}.search-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #11111118}.search-box input:focus-visible{outline:0}.clear-search{font-size:25px;background:transparent;width:44px;height:44px;margin-right:-12px;color:var(--muted)}
.chapter-list{display:flex;flex-direction:column;gap:12px}.chapter-row{display:flex;align-items:center;gap:15px;min-height:108px;padding:20px 17px;background:#fff;border:1px solid var(--border-strong);border-radius:18px;box-shadow:0 3px 8px #00000000}.chapter-icon{height:50px;width:50px;border-radius:16px;display:grid;place-items:center;background:#ffce00;color:#111111;flex:none}.chapter-icon svg{height:26px;width:26px;stroke-width:1.6}.chapter-row[data-chapter="sound"] .chapter-icon{background:#ffce00;color:#111111}.chapter-row[data-chapter="stage"] .chapter-icon{background:#ffce00;color:#111111}.chapter-label{flex:1;min-width:0}.chapter-label strong{display:block;font-family:var(--font-heading);font-size:20px;font-weight:400;letter-spacing:.08em}.chapter-label small{display:block;margin-top:3px;font-size:12px;color:var(--muted);line-height:1.65}.chapter-row>.chevron{color:#555555;display:flex}.chapter-row>.chevron svg{width:18px;height:18px}.chapter-row:active,.quick:active,.topic-card:active{background:#fafafa;transform:translateY(1px)}
.section-heading{margin:27px 0 12px;display:flex;align-items:center;justify-content:space-between}.section-heading h2{font-size:14px;color:#111111;font-weight:400}.quick-list{background:#fff;border:1px solid var(--line);border-radius:15px;overflow:hidden}.quick{display:flex;align-items:center;gap:11px;min-height:57px;padding:12px 16px;font-size:14px}.quick+.quick{border-top:1px solid var(--line)}.mini-icon{color:#111111;display:flex}.mini-icon svg{width:20px;height:20px}.quick>svg{width:17px;height:17px;color:#555555;margin-left:auto}.home-note{display:flex;gap:9px;margin:22px 0 0;font-size:12px;line-height:1.9;color:var(--muted)}.home-note>svg{width:16px;height:16px;margin-top:4px}.home-note p{flex:1}.search-results{padding-bottom:15px}.search-results>h2{font-size:17px;margin:0 0 18px}.search-results h2 small{font-size:13px;color:var(--muted)}.empty{padding:30px 16px;text-align:center;color:var(--muted);font-size:15px}.empty button{display:block;background:#ffffff;margin:20px auto 0;padding:10px 16px;border-radius:12px}
.breadcrumb,.eyebrow,.page-heading>.number{display:none}.page-heading{padding:25px 0 20px}.page-heading h1{font-size:24px}.page-heading p{margin-top:5px;font-size:14px;color:var(--muted);line-height:1.9}.filterbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 19px;font-size:13px}.filterbar .label{width:100%;color:var(--muted);font-size:12px}.chip{background:#ffffff;color:#111111;border-radius:24px;min-height:44px;padding:9px 18px;font-size:13px;line-height:1.4;white-space:nowrap;border:1px solid transparent}.chip.active{background:var(--accent);color:var(--paper)}.result-count{font-size:12px;color:var(--muted);margin-left:auto}.topic-grid{display:flex;flex-direction:column;gap:12px}.topic-card{display:flex;align-items:center;gap:15px;padding:16px;background:#fff;border:1px solid var(--line);border-radius:16px;min-height:136px}.topic-card>img{width:72px;height:88px;border-radius:10px;object-fit:cover;flex:none}.topic-copy{min-width:0;flex:1}.topic-copy h3{font-size:16px;margin:3px 0}.topic-copy>p{font-size:12px;color:var(--muted);line-height:1.7}.floor-label{font-size:11px;display:inline-flex;align-items:center;gap:3px;color:var(--muted);line-height:1.5}.floor-label svg{width:12px;height:12px}.topic-bottom{font-size:10px;display:flex;align-items:center;gap:8px;margin-top:9px;color:var(--warm-ink)}.topic-bottom svg{width:17px;height:17px;margin-left:auto;color:#555555}.status-label{background:var(--warm);color:var(--warm-ink);font-size:11px;line-height:1.6;padding:4px 9px;border-radius:6px}
.article-head{padding:25px 0 18px}.article-head h1{font-size:24px;line-height:1.6}.article-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px}.article-meta .floor-label{font-size:12px}.article-meta .floor-label svg{height:14px;width:14px}.article-tabs{position:sticky;top:var(--bar-height);z-index:20;display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;margin:0 -20px 18px;padding:10px 20px;background:#ffce00f5;border-top:1px solid var(--line);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}.article-tabs::-webkit-scrollbar{display:none}.article-tabs button{min-height:44px;white-space:nowrap;font-size:12px;line-height:1.4;border:1px solid #333333;border-radius:10px;background:white;padding:10px 12px;flex:1}.article-tabs button:first-child{color:var(--paper);background:var(--accent);border-color:var(--accent)}.location-box{display:flex;align-items:flex-start;gap:10px;padding:0 0 16px}.location-box h2{display:flex;gap:4px;white-space:nowrap;font-size:12px;font-weight:500;color:#111111;line-height:1.9}.location-box h2 svg{height:14px;width:14px;margin-top:5px}.location-box p{font-size:13px;line-height:1.8;color:var(--muted)}.article-cover{position:relative;display:block;overflow:hidden;background:#fafafa;border:1px solid var(--line);width:100%;padding:0;border-radius:15px}.article-cover>img{width:100%;height:270px;object-fit:contain}.zoom-hint{position:absolute;bottom:10px;right:10px;display:flex;align-items:center;gap:5px;font-size:10px;line-height:1.5;padding:6px 9px;background:#fffffff2;color:#111111;border-radius:7px}.zoom-hint svg{width:13px;height:13px}.intro{font-size:16px;line-height:1.95;margin:21px 0;color:#111111}.caution{background:var(--white);border:1px solid #333333;color:#111111;padding:17px;border-radius:12px;font-size:14px;line-height:1.9;margin:20px 0}.caution strong{display:flex;align-items:center;gap:7px;font-size:14px;margin-bottom:7px}.caution svg{width:18px;height:18px}.article-section{margin-top:32px;scroll-margin-top:145px}.article-section>h2{font-size:18px;margin-bottom:15px;display:flex;align-items:center;gap:7px}.article-section>h2 svg{width:20px;height:20px}.checklist{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.checkitem{display:flex;align-items:flex-start;gap:11px;padding:16px;font-size:15px;cursor:pointer;line-height:1.9}.checkitem+.checkitem{border-top:1px solid var(--line)}.checkitem input{width:22px;height:22px;flex:none;accent-color:var(--accent);margin:3px 0 0}.checkitem input:checked+span{color:#666666}.check-note{font-size:11px;color:var(--muted);margin-top:8px;line-height:1.8}.steps{counter-reset:step;list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}.step{counter-increment:step;display:flex;align-items:flex-start;gap:12px;padding:18px 16px;background:white;border:1px solid var(--line);border-radius:15px}.step:before{content:counter(step);display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-size:14px;font-weight:700;background:#ffce00;color:#111111;flex:none;margin-top:1px}.step>div{flex:1;min-width:0}.step h3{font-size:16px;letter-spacing:.04em;line-height:1.8;margin-bottom:8px}.step p{font-size:16px;line-height:1.95;color:#111111}.inline-photo{border:1px solid var(--line);margin-top:14px;padding:10px;display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:46px;border-radius:9px;background:#fafafa;color:#111111;font-size:12px;line-height:1.6}.inline-photo svg{height:16px;width:16px}.fact-list,.finish-list{padding:17px 18px 17px 35px;margin:0;background:#fff;border:1px solid var(--line);border-radius:13px;font-size:15px;line-height:1.95}.fact-list li+li,.finish-list li+li{margin-top:10px}li::marker{color:#111111}.table-wrap{border:1px solid var(--line);border-radius:12px;overflow:hidden}table{width:100%;border-collapse:collapse;background:white;table-layout:fixed;font-size:13px;line-height:1.9}th,td{padding:12px 11px;text-align:left;vertical-align:top;overflow-wrap:anywhere}th{background:#fafafa;font-size:12px;font-weight:600}th+th,td+td{border-left:1px solid var(--line)}tr+tr td{border-top:1px solid var(--line)}.qa{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:10px}.qa summary{cursor:pointer;font-size:15px;padding:16px;min-height:56px}.qa p{padding:0 16px 18px;font-size:15px;line-height:1.9;color:var(--muted)}.pending{background:#ffffff;border:1px solid var(--border-strong);border-radius:13px;padding:18px}.pending>h2{font-size:15px;align-items:flex-start;line-height:1.8}.pending>h2 svg{margin-top:3px;height:17px;width:17px}.pending ul{margin:10px 0 0;padding-left:19px;font-size:14px;line-height:1.9;color:#111111}.pending li+li{margin-top:9px}.photo-grid{display:flex;flex-direction:column;gap:14px}.photo-item{background:white;padding:0;border:1px solid var(--line);border-radius:13px;overflow:hidden;display:block;width:100%;text-align:left}.photo-item>img{width:100%;height:230px;object-fit:contain;background:#fafafa}.photo-item>span{display:block;padding:13px 14px;font-size:14px;line-height:1.8}.photo-item small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.source-line{font-size:10px;color:var(--muted);line-height:1.7;margin-top:12px;display:flex;gap:5px}.source-line svg{width:12px;height:12px;margin-top:3px}.related-list{background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden}.related-link{display:flex;align-items:center;gap:12px;padding:15px;font-size:14px;min-height:56px}.related-link+.related-link{border-top:1px solid var(--line)}.related-link svg{width:17px;height:17px;margin-left:auto;color:#555555}.back-link{display:flex;align-items:center;justify-content:center;gap:8px;min-height:52px;margin:27px 0 0;color:var(--accent);font-size:14px}.back-link svg{transform:rotate(180deg);height:16px;width:16px}
.gallery-info,.review-lead{font-size:14px;line-height:1.95;color:var(--muted);margin-bottom:22px}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gallery-grid .photo-item>img{height:160px;object-fit:cover}.gallery-grid .photo-item>span{padding:10px;font-size:11px}.gallery-grid .photo-item small{font-size:9px}.review-list{display:flex;flex-direction:column;gap:14px}.review-card{padding:18px;background:white;border:1px solid var(--line);border-radius:14px}.review-card h2{font-size:17px;margin:6px 0 12px}.review-card ul{padding-left:20px;font-size:14px;line-height:1.95;color:var(--muted)}.review-card li+li{margin-top:8px}.review-card a{display:flex;align-items:center;min-height:44px;color:var(--accent);font-size:13px}.footer{padding:30px 20px 18px;color:#444444;font-size:11px;line-height:1.9}.footer a{display:inline-flex;align-items:center;gap:9px;min-height:44px;color:#111111;font-size:12px}.footer a svg{height:14px;width:14px}.footer small{display:block;font-size:10px;color:#555555}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:var(--app-width);z-index:35;background:#fffffff5;border-top:1px solid #e5e5e5;backdrop-filter:blur(12px);display:flex;justify-content:space-around;padding:7px 9px calc(8px + env(safe-area-inset-bottom))}.bottom-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;line-height:1.4;color:#555555;min-height:48px;min-width:0}.bottom-nav a>span:first-child{display:grid;place-items:center;width:48px;height:29px;border-radius:15px}.bottom-nav svg{width:22px;height:22px}.bottom-nav a.active{color:var(--accent);font-weight:700}.bottom-nav a.active>span:first-child{background:#ffce00}
#photo-dialog{max-width:480px;width:100%;height:100dvh;max-height:100dvh;padding:0;border:0;margin:0 auto;background:#111111;color:#fff;overflow:hidden}#photo-dialog[open]{display:flex;flex-direction:column}#photo-dialog::backdrop{background:#111111e6}.photo-toolbar{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:12px 12px;background:#111111;font-size:12px;flex:none}.photo-toolbar>div{display:flex;gap:6px}.photo-toolbar button{padding:8px 12px;background:#ffffff1b;border-radius:9px;color:white;min-height:44px;font-size:12px}.photo-canvas{flex:1;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;overscroll-behavior:contain}.photo-canvas img{width:100%;height:100%;object-fit:contain;max-width:100%;max-height:100%}.photo-canvas.zoomed{display:block}.photo-canvas.zoomed img{width:1100px;min-width:1100px;max-width:none;height:auto;max-height:none}.photo-caption{padding:14px 18px calc(18px + env(safe-area-inset-bottom));font-size:12px;line-height:1.9;background:#111111;flex:none}.noscript{margin:30px;font-size:15px}
@media(max-width:359px){.wrap,.article{padding-left:16px;padding-right:16px}.appbar{padding-left:12px;padding-right:12px}.draft-bar{padding-left:14px;padding-right:14px;font-size:9px;gap:4px}.draft-extra{font-size:8px}.home-intro h1{font-size:20px}.chapter-row{padding:17px 14px;gap:12px;min-height:102px}.chapter-icon{height:44px;width:44px;border-radius:14px}.chapter-label strong{font-size:19px}.chapter-label small{font-size:11px}.article-head h1{font-size:22px}.article-tabs{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;gap:5px}.article-tabs button{font-size:11px;padding:10px}.topic-card{padding:13px;gap:12px}.topic-card>img{width:60px;height:80px}.topic-copy h3{font-size:15px}.step{gap:9px;padding:16px 12px}.step:before{width:25px;height:25px}.step h3,.step p{font-size:15px}.article-cover>img{height:240px}.filterbar{gap:6px}.chip{padding:9px 14px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Temporary reference photos must identify the actual floor. */
.cover-figure{margin:0}.cover-note{margin-top:10px;padding:10px 12px;border:1px solid var(--border-strong);border-radius:9px;background:var(--white);color:var(--ink);font-size:14px;line-height:1.8}.topic-copy>.topic-image-note{margin-top:6px;color:var(--ink);font-size:12px;line-height:1.7}

/* Keep multi-line headings balanced on narrow phone screens. */
h1,h2,h3{text-wrap:balance}

/* Orient reference photos for reading while preserving the original assets. */
.photo-item>.photo-frame{display:block;position:relative;padding:0;width:100%;height:230px;overflow:hidden;background:#fafafa}
.photo-frame>img{width:100%;height:100%;object-fit:contain}
.gallery-grid .photo-item>.photo-frame{height:160px;padding:0}
.gallery-grid .photo-frame>img{object-fit:cover}
.photo-image-frame{position:relative;flex:none;margin:0 auto}
.photo-canvas .photo-image-frame img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;object-fit:contain;min-width:0}
.photo-canvas.zoomed .photo-image-frame img{min-width:0}

.title-part{display:inline-block;white-space:nowrap}
