/* アソビ航路 — an editorial wayfinding system for every public page. */
:root{--route-ink:#172536;--route-blue:#20384d;--route-orange:#ef7045;--route-paper:#f5f1e8;--route-white:#fffdf7;--route-line:#c9c9bc;--route-muted:#596879;--route-mint:#c9e3d1}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.asobi-home,body.asobi-article,body.asobi-game,body.asobi-404{background:var(--route-paper)!important;color:var(--route-ink)!important;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif!important}
body.asobi-home,body.asobi-article,body.asobi-404{background-image:radial-gradient(#17253613 .8px,transparent .8px)!important;background-size:16px 16px!important}
body :is(a,button,input):focus-visible{outline:3px solid var(--route-orange)!important;outline-offset:3px}

/* Masthead */
body.asobi-article>.site-header,body.asobi-article>header.site-header,
body.asobi-game .site-content .site-header{max-width:none!important;width:100%!important;min-height:76px!important;margin:0!important;padding:12px max(20px,calc((100vw - 1250px)/2))!important;border:0!important;border-bottom:4px solid var(--route-orange)!important;border-radius:0!important;background:var(--route-ink)!important;box-shadow:none!important;color:var(--route-white)!important;display:flex!important;align-items:center!important;gap:22px!important}
body.asobi-article .site-header .brand,body.asobi-game .site-content .site-header .brand{color:var(--route-white)!important;font-family:"Yu Mincho","Hiragino Mincho ProN",serif!important;font-size:23px!important;font-weight:900!important;letter-spacing:.03em!important;text-decoration:none!important}
body.asobi-article .site-header .brand-mark,body.asobi-game .site-content .site-header .brand-mark{width:44px!important;height:44px!important;flex:0 0 44px!important;border:2px solid var(--route-orange)!important;border-radius:3px!important;background:var(--route-orange)!important;color:var(--route-ink)!important;font:900 25px/1 "Yu Mincho",serif!important;transform:rotate(-7deg);box-shadow:4px 4px 0 #ffffff30!important}
body.asobi-article .site-header .brand small,body.asobi-game .site-content .site-header .brand small{color:#c9d5db!important;font:700 9px/1.4 sans-serif!important;letter-spacing:.16em!important}
body.asobi-article .site-header .site-nav,body.asobi-game .site-content .site-header .site-nav{margin-left:auto!important}
body.asobi-article .site-header .site-nav a,body.asobi-game .site-content .site-header .site-nav a{display:inline-flex!important;align-items:center!important;min-height:38px!important;padding:8px 14px!important;border:1px solid #ffffff8c!important;border-radius:2px!important;color:var(--route-white)!important;text-decoration:none!important;font-size:12px!important;letter-spacing:.04em!important}
body.asobi-article .site-header .site-nav a:hover,body.asobi-game .site-content .site-header .site-nav a:hover{background:var(--route-orange)!important;color:var(--route-ink)!important}

/* Article and guide pages: broad introduction, reading column, route rail. */
body.asobi-article main,body.asobi-game .site-content .site-main{display:block!important;width:min(100% - 40px,1200px)!important;max-width:none!important;margin:0 auto!important;padding:28px 0 72px!important;background:none!important;color:var(--route-ink)!important;box-shadow:none!important;overflow:visible!important}
body.asobi-article .breadcrumb,body.asobi-game .site-content .breadcrumb{display:block!important;margin:0 0 18px!important;color:var(--route-muted)!important;font:700 11px/1.6 sans-serif!important;letter-spacing:.07em!important}
body.asobi-article .breadcrumb a,body.asobi-game .site-content .breadcrumb a{color:var(--route-blue)!important}
body.asobi-article .article-hero,body.asobi-game .site-content .article-hero{display:grid!important;align-content:center!important;min-height:210px!important;margin:0 0 26px!important;padding:36px clamp(24px,5vw,64px)!important;border:2px solid var(--route-ink)!important;border-radius:0!important;background:linear-gradient(110deg,var(--route-mint) 0 15%,var(--route-white) 15% 100%)!important;color:var(--route-ink)!important;box-shadow:9px 9px 0 var(--route-ink)!important;overflow:hidden!important}
body.asobi-article .article-hero:before,body.asobi-game .site-content .article-hero:before{content:"PLAY / READ";display:block;margin-bottom:14px;color:var(--route-orange);font:900 11px/1 sans-serif;letter-spacing:.24em}
body.asobi-article .article-hero .eyebrow,body.asobi-game .site-content .article-hero .eyebrow{display:none!important}
body.asobi-article .article-hero h1,body.asobi-game .site-content .article-hero h1{max-width:850px!important;margin:0!important;color:var(--route-ink)!important;font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif!important;font-size:clamp(34px,5.5vw,70px)!important;font-weight:900!important;line-height:1.15!important;letter-spacing:-.06em!important;text-wrap:balance}
body.asobi-article .article-hero .lead,body.asobi-game .site-content .article-hero .lead{max-width:740px!important;margin:18px 0 0!important;color:#3c4d59!important;font-size:15px!important;line-height:1.9!important}
body.asobi-article .article-hero .hero-meta,body.asobi-game .site-content .article-hero .hero-meta{color:var(--route-muted)!important}
body.asobi-article .article-hero .article-actions,body.asobi-game .site-content .article-hero .article-actions{display:flex!important;flex-wrap:wrap!important;gap:10px!important;margin-top:24px!important}
body.asobi-article .article-hero .action-link,body.asobi-game .site-content .article-hero .action-link{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;min-height:42px!important;margin:0!important;padding:9px 16px!important;border:2px solid var(--route-ink)!important;border-radius:0!important;background:var(--route-orange)!important;color:var(--route-ink)!important;box-shadow:4px 4px 0 var(--route-ink)!important;font:900 12px/1.4 sans-serif!important;text-decoration:none!important}
body.asobi-article .article-hero .action-link:not(.primary),body.asobi-game .site-content .article-hero .action-link:not(.primary){background:var(--route-white)!important}
.asobi-content-grid{display:grid;grid-template-columns:minmax(0,1fr) 248px;gap:28px;align-items:start}
.asobi-primary{min-width:0}
body.asobi-article .article-body,body.asobi-game .site-content .article-body,
body.asobi-article .related,body.asobi-game .site-content .related{margin:0 0 25px!important;padding:clamp(23px,4vw,48px)!important;border:1px solid var(--route-line)!important;border-top:7px solid var(--route-ink)!important;border-radius:0!important;background:var(--route-white)!important;color:var(--route-ink)!important;box-shadow:5px 5px 0 #17253616!important}
body.asobi-article .article-body :is(h2,h3),body.asobi-game .site-content .article-body :is(h2,h3){color:var(--route-ink)!important;font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif!important;font-weight:900!important}
body.asobi-article .article-body h2,body.asobi-game .site-content .article-body h2{margin:38px 0 15px!important;padding:0 0 10px!important;border-bottom:2px solid var(--route-ink)!important;font-size:clamp(22px,2.4vw,30px)!important;line-height:1.35!important;scroll-margin-top:28px}
body.asobi-article .article-body h2:first-child,body.asobi-game .site-content .article-body h2:first-child{margin-top:0!important}
body.asobi-article .article-body h3,body.asobi-game .site-content .article-body h3{font-size:19px!important}
body.asobi-article .article-body :is(p,li),body.asobi-game .site-content .article-body :is(p,li){color:#354455!important;line-height:1.95!important}
.route-copy-note{margin:0 0 24px!important;padding:12px 16px!important;border-left:4px solid var(--route-orange)!important;background:var(--route-paper)!important;color:var(--route-blue)!important;font-size:13px!important;font-weight:700!important;line-height:1.7!important}
body.asobi-article .article-body a,body.asobi-game .site-content .article-body a{color:#a84322!important;text-decoration-thickness:2px!important;text-underline-offset:4px!important}
body.asobi-article .article-body th,body.asobi-game .site-content .article-body th{background:var(--route-mint)!important;color:var(--route-ink)!important}
body.asobi-article .article-body td,body.asobi-game .site-content .article-body td{border-color:var(--route-line)!important}
body.asobi-article .page-links a,body.asobi-game .site-content .page-links a{border:1px solid var(--route-ink)!important;border-radius:0!important;background:var(--route-paper)!important;color:var(--route-ink)!important;box-shadow:3px 3px 0 var(--route-ink)!important}
body.asobi-article .toc,body.asobi-game .site-content .toc{border:1px solid var(--route-line)!important;border-radius:0!important;background:var(--route-paper)!important}
body.asobi-article .note,body.asobi-game .site-content .note{border-radius:0!important;background:#fbe6d9!important;border-left-color:var(--route-orange)!important}
body.asobi-game .site-content{--page-bg:var(--route-paper)!important;--page-ink:var(--route-ink)!important;--page-accent:#a84322!important;--page-surface:var(--route-white)!important;--page-muted:var(--route-muted)!important;--page-line:var(--route-line)!important;background:var(--route-paper)!important;color:var(--route-ink)!important}
body.asobi-game .site-content .article-actions .action-link{border-radius:2px!important;box-shadow:4px 4px 0 var(--route-ink)!important}
body.asobi-game #game-native{width:calc(100% - 36px)!important;margin:18px auto 0!important;border:5px solid var(--route-ink)!important;border-radius:4px!important;box-shadow:9px 9px 0 var(--route-orange)!important;outline:none!important}
body.asobi-game #game-native:not([data-game-slug="beer-pour"],[data-game-slug="concafe-simulator"],[data-game-slug="moji-blade"],[data-game-slug="nnko-quiz"],[data-game-slug="omurice-simulator"],[data-game-slug="streamer-life-simulator"],[data-game-slug="ice-break"]){height:calc(100svh - 118px)!important}
body.asobi-game #game-native:after{content:"";position:absolute;inset:12px;border:1px solid #ffffff99;z-index:10000;pointer-events:none}
.route-play-header{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:76px;padding:12px max(18px,calc((100vw - 1320px)/2));background:var(--route-ink);border-bottom:5px solid var(--route-orange);color:var(--route-white)}
.route-play-header .route-logo{font-size:19px}.route-play-header .route-logo-mark{width:38px;height:38px;font-size:21px}.route-play-header .route-logo small{font-size:8px}
.route-play-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#d2dce0;font:700 12px/1.4 sans-serif;letter-spacing:.06em}.route-play-title:before{content:"●  PLAYING / ";color:var(--route-orange);letter-spacing:.12em}
.route-play-links{display:flex;gap:8px;flex:none}.route-play-links a{padding:7px 11px;border:1px solid #ffffff8f;color:var(--route-white);text-decoration:none;font-size:11px;font-weight:800}.route-play-links a:hover{background:var(--route-orange);color:var(--route-ink)}
.asobi-interlude{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px max(20px,calc((100vw - 1200px)/2));background:var(--route-orange);color:var(--route-ink);border-top:5px solid var(--route-ink);font-weight:900}
.asobi-interlude strong{font-family:"Yu Mincho",serif;font-size:clamp(20px,3vw,32px)}
.asobi-interlude a{flex:none;border:2px solid var(--route-ink);padding:7px 13px;color:var(--route-ink);text-decoration:none;font-size:12px}
.asobi-rail{position:sticky;top:22px;padding:22px 20px;background:var(--route-ink);color:var(--route-white);border-top:7px solid var(--route-orange);box-shadow:6px 6px 0 #17253635}
.asobi-rail .rail-kicker{margin:0 0 5px;color:var(--route-orange);font:900 10px/1.3 sans-serif;letter-spacing:.22em}
.asobi-rail h2{margin:0 0 16px;color:var(--route-white);font:900 20px/1.3 "Yu Mincho",serif}
.asobi-rail a{display:block;padding:10px 0;border-top:1px solid #ffffff36;color:var(--route-white)!important;text-decoration:none!important;font-size:12px!important;line-height:1.5!important}
.asobi-rail a:hover{color:var(--route-orange)!important}
body.asobi-article>.site-footer,body.asobi-game .site-content .site-footer{max-width:none!important;margin:0!important;padding:30px max(20px,calc((100vw - 1200px)/2))!important;background:var(--route-ink)!important;color:#cbd4d8!important;border-radius:0!important}
body.asobi-article>.site-footer a,body.asobi-game .site-content .site-footer a{color:#cbd4d8!important}

/* Home: route board rather than a pastel card directory. */
body.asobi-home{margin:0;line-height:1.6}
.route-header{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:15px max(22px,calc((100vw - 1320px)/2));background:var(--route-ink);border-bottom:6px solid var(--route-orange);color:var(--route-white)}
.route-logo{display:flex;align-items:center;gap:14px;color:var(--route-white);text-decoration:none;font:900 25px/1.2 "Yu Mincho",serif;letter-spacing:.04em}
.route-logo-mark{display:grid;place-items:center;width:48px;height:48px;background:var(--route-orange);color:var(--route-ink);border:2px solid var(--route-white);transform:rotate(-7deg);font-size:27px}
.route-logo small{display:block;font:700 10px/1.2 sans-serif;letter-spacing:.23em;color:#bbc9d0;margin-top:5px}
.route-topnav{display:flex;align-items:center;gap:18px;font-size:12px;font-weight:800}
.route-topnav a{color:var(--route-white);text-decoration:none;padding:7px 0;border-bottom:2px solid transparent}.route-topnav a:hover{border-color:var(--route-orange)}
.route-home-main{width:min(100% - 44px,1320px);margin:0 auto;padding:28px 0 80px}
.route-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);min-height:420px;border:2px solid var(--route-ink);background:var(--route-white);box-shadow:10px 10px 0 var(--route-ink)}
.route-hero-copy{position:relative;padding:clamp(32px,5vw,74px);overflow:hidden}
.route-hero-copy:after{content:"PLAY";position:absolute;right:-16px;bottom:-52px;color:#1725360d;font:900 clamp(90px,14vw,220px)/1 Georgia,serif;pointer-events:none}
.route-eyebrow,.route-section-kicker{display:inline-block;color:#b54420;font:900 11px/1.3 sans-serif;letter-spacing:.24em}
.route-hero h1{margin:20px 0 18px;font:900 clamp(46px,6.3vw,90px)/1.08 "Yu Mincho","Hiragino Mincho ProN",Georgia,serif;letter-spacing:-.07em}
.route-hero h1 span{color:#b54420}
.route-hero p{max-width:570px;font-size:15px;line-height:1.9;color:#3d5060}
.route-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.route-button{display:inline-flex;align-items:center;justify-content:center;gap:13px;padding:13px 20px;border:2px solid var(--route-ink);background:var(--route-orange);box-shadow:4px 4px 0 var(--route-ink);color:var(--route-ink);font-weight:900;text-decoration:none}.route-button.secondary{background:var(--route-white)}.route-button:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--route-ink)}
.route-hero-board{display:flex;flex-direction:column;justify-content:space-between;padding:28px;background:var(--route-blue);color:var(--route-white);border-left:2px solid var(--route-ink)}
.board-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff69;padding-bottom:15px;font:800 11px/1 sans-serif;letter-spacing:.17em}.board-dot{width:11px;height:11px;border-radius:50%;background:var(--route-orange);box-shadow:0 0 0 5px #ef704544}
.route-map{position:relative;display:grid;gap:18px;margin:25px 0 35px;padding-left:26px}.route-map:before{content:"";position:absolute;left:7px;top:16px;bottom:16px;border-left:3px solid var(--route-orange)}
.route-stop{position:relative;border-bottom:1px solid #ffffff35;padding:0 0 13px}.route-stop:before{content:"";position:absolute;left:-26px;top:4px;width:14px;height:14px;border-radius:50%;background:var(--route-paper);border:3px solid var(--route-orange)}.route-stop span{display:block;color:#a9bdc8;font:800 10px/1.2 sans-serif;letter-spacing:.15em}.route-stop strong{display:block;margin-top:6px;font:900 19px/1.3 "Yu Mincho",serif}
.board-foot{font-size:12px;color:#c8d4d8}
.route-directory{display:grid;grid-template-columns:220px minmax(0,1fr);gap:34px;margin-top:74px}
.route-directory-sidebar{position:sticky;top:20px;align-self:start}.route-directory-sidebar h2{font:900 30px/1.2 "Yu Mincho",serif;margin:10px 0}.route-directory-sidebar p{color:var(--route-muted);font-size:13px;line-height:1.8}
.route-categories{display:grid;gap:7px;margin-top:26px;max-height:55vh;overflow:auto;padding-right:8px}.route-categories button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 11px;border:1px solid var(--route-line);border-radius:0;background:var(--route-white);color:var(--route-ink);text-align:left;font:800 12px/1.4 sans-serif;cursor:pointer}.route-categories button[aria-pressed="true"]{background:var(--route-ink);color:var(--route-white);border-color:var(--route-ink)}.route-categories button:hover{border-color:var(--route-orange)}
.route-directory-head{display:flex;align-items:end;justify-content:space-between;gap:18px;border-bottom:3px solid var(--route-ink);padding:0 0 16px;margin-bottom:20px}.route-directory-head h2{margin:5px 0 0;font:900 clamp(26px,3vw,42px)/1.2 "Yu Mincho",serif}.route-search{display:flex;align-items:center;gap:8px;min-width:min(100%,300px);padding:9px 12px;border:2px solid var(--route-ink);background:var(--route-white)}.route-search input{width:100%;border:0;outline:0;background:transparent;color:var(--route-ink);font:600 13px/1.4 sans-serif}
.route-count{font:800 11px/1.5 sans-serif;letter-spacing:.12em;color:var(--route-muted);margin:0 0 13px}
.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.route-card{display:flex;flex-direction:column;min-width:0;min-height:254px;padding:20px;border:1px solid var(--route-ink);background:var(--route-white);color:var(--route-ink);text-decoration:none;transition:transform .2s,box-shadow .2s}.route-card:hover{transform:translateY(-4px);box-shadow:5px 7px 0 var(--route-ink)}.route-card-top{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--route-line);padding-bottom:12px;font:900 11px/1.3 sans-serif;letter-spacing:.12em;color:#8b4b37}.route-card-mark{display:grid;place-items:center;width:56px;height:56px;margin:14px 0 12px;background:var(--route-mint);color:var(--route-ink);font:900 32px/1 "Yu Mincho",serif}.route-card:nth-child(3n+2) .route-card-mark{background:#f4cfb5}.route-card:nth-child(3n) .route-card-mark{background:#c6d9e7}.route-card h3{margin:0 0 8px;font:900 19px/1.35 "Yu Mincho",serif}.route-card p{margin:0;color:#556371;font-size:12px;line-height:1.7;flex:1}.route-card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:15px;padding-top:10px;border-top:1px solid var(--route-line);font:900 11px/1 sans-serif;color:#a84322}.route-empty{padding:40px;border:1px dashed var(--route-ink);text-align:center}
.route-hubs{margin-top:55px;padding:25px 30px;border:2px solid var(--route-ink);background:var(--route-mint)}.route-hubs h2{margin:0 0 13px;font:900 24px/1.2 "Yu Mincho",serif}.route-hubs nav{display:flex;flex-wrap:wrap;gap:10px}.route-hubs a{padding:8px 12px;border:1px solid var(--route-ink);background:var(--route-white);color:var(--route-ink);text-decoration:none;font-size:12px;font-weight:900}
.route-footer{display:flex;justify-content:space-between;gap:22px;flex-wrap:wrap;padding:32px max(22px,calc((100vw - 1320px)/2));background:var(--route-ink);color:#c7d4d9;font-size:12px}.route-footer strong{display:block;color:#fff;font:900 22px/1.2 "Yu Mincho",serif}.route-footer nav{display:flex;gap:8px 15px;flex-wrap:wrap}.route-footer a{color:#d8e0e3;text-decoration:none}

body.asobi-404{display:grid!important;place-items:center!important;min-height:100svh!important;padding:24px!important}.asobi-404 .box{width:min(100%,580px)!important;max-width:none!important;border:2px solid var(--route-ink)!important;border-radius:0!important;background:var(--route-white)!important;box-shadow:10px 10px 0 var(--route-ink)!important}.asobi-404 .code{color:var(--route-orange)!important;font-family:Georgia,serif!important}.asobi-404 a.home{border:2px solid var(--route-ink)!important;border-radius:0!important;background:var(--route-orange)!important;color:var(--route-ink)!important;box-shadow:4px 4px 0 var(--route-ink)!important}.asobi-404 .links a{color:#a84322!important}

@media(max-width:1000px){.route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-directory{grid-template-columns:175px minmax(0,1fr)}.asobi-content-grid{grid-template-columns:minmax(0,1fr) 205px;gap:18px}}
@media(max-width:720px){.route-header{padding:13px 18px}.route-topnav{gap:10px}.route-topnav a:nth-child(n+2){display:none}.route-logo{font-size:20px}.route-logo-mark{width:40px;height:40px;font-size:22px}.route-home-main{width:min(100% - 28px,1320px);padding-top:16px}.route-hero{grid-template-columns:1fr;box-shadow:5px 5px 0 var(--route-ink)}.route-hero-copy{padding:30px 24px}.route-hero-board{border-left:0;border-top:2px solid var(--route-ink);padding:20px}.route-map{grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 10px;padding-left:0}.route-map:before,.route-stop:before{display:none}.route-stop strong{font-size:15px}.route-directory{display:block;margin-top:56px}.route-directory-sidebar{position:static}.route-categories{display:flex;overflow:auto;max-height:none;margin:15px 0 24px;padding:0 0 8px}.route-categories button{width:auto;flex:none;gap:12px}.route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.route-directory-head{align-items:stretch;flex-direction:column}.route-search{min-width:0}.asobi-content-grid{display:block}.asobi-rail{position:static;margin:20px 0}.asobi-rail a{display:inline-block;margin-right:15px}body.asobi-article main,body.asobi-game .site-content .site-main{width:min(100% - 26px,1200px)!important;padding-top:20px!important}body.asobi-article .article-hero,body.asobi-game .site-content .article-hero{min-height:0!important;padding:30px 25px!important;box-shadow:5px 5px 0 var(--route-ink)!important}body.asobi-article .article-body,body.asobi-game .site-content .article-body{padding:23px!important}.asobi-interlude{padding:15px 17px}body.asobi-article>.site-header,body.asobi-article>header.site-header,body.asobi-game .site-content .site-header{padding:12px 16px!important}.route-play-title{display:none}body.asobi-game #game-native{width:calc(100% - 16px)!important;margin:8px auto 0!important;box-shadow:4px 4px 0 var(--route-orange)!important}body.asobi-game #game-native:not([data-game-slug="beer-pour"],[data-game-slug="concafe-simulator"],[data-game-slug="moji-blade"],[data-game-slug="nnko-quiz"],[data-game-slug="omurice-simulator"],[data-game-slug="streamer-life-simulator"],[data-game-slug="ice-break"]){height:calc(100svh - 92px)!important}.route-play-header{min-height:62px;padding:8px 12px}}
@media(max-width:450px){.route-grid{grid-template-columns:1fr}.route-card{min-height:0}.route-hero h1{font-size:45px}.route-hero-actions{display:grid}.route-map{grid-template-columns:1fr}.route-stop{display:flex;gap:10px;align-items:center;padding:6px 0}.route-stop strong{margin:0}.route-hubs{padding:19px}.asobi-interlude{align-items:start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
