:root{--paper:#f6f8f4;--card:#fff;--ink:#1c3a2f;--muted:#6a7b72;--line:#e1e7de;--primary:#2d6a4f;--primary-dark:#214f3b;--primary-soft:#e6efe7;--primary-ink:#fff;--accent:#e76f51;--ocean:#d5e6ee;--ocean-deep:#bcdcea;--land:#e4e9df;--land-line:#cdbfa6;--slot:#fffdf8;--lake:#c3dbe8;--gold:#f2b705;--easy:#669a1f;--easy-ink:#5b8a14;--easy-on:#fff;--easy-bg:#f3f9e6;--normal:#d98b26;--normal-ink:#b57812;--normal-on:#fff;--normal-bg:#fef6e4;--hard:#e0453a;--hard-ink:#c9352b;--hard-on:#fff;--hard-bg:#fcecea;--name:#7a5bc7;--name-ink:#6647b3;--name-on:#fff;--name-bg:#f3effc;--blank:#3a4150;--blank-ink:#2c3240;--blank-on:#fff;--blank-bg:#eef0f4;--clear:#52a86a;--piece-plain:#e2d6bd;--radius:16px;--shadow:0 1px 2px #1c3a2f0d, 0 6px 18px #1c3a2f0f;--sage:#b3c69b;--sage-line:#ffffffd9;--soft:#edf2ea;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%;font-family:Zen Kaku Gothic New,Hiragino Sans,Hiragino Kaku Gothic ProN,sans-serif;font-weight:300}*{box-sizing:border-box}html,body{background:var(--paper);overscroll-behavior-y:none;margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2{margin:0}h1,h2,h3,h4,h5,h6,b,strong,th{font-weight:500}.muted{color:var(--muted)}.small{font-size:13px}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.sp{display:none}@media (width<=600px){.sp{display:inline}}.btn{white-space:nowrap;border:2px solid var(--line);background:var(--card);border-radius:999px;flex-shrink:0;padding:9px 18px;font-weight:300;transition:transform 80ms,background .15s}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn.ghost{background:0 0;border-color:#0000}.btn.small{padding:6px 12px;font-size:14px}.btn.wide{width:100%}.btn.big{padding:14px;font-size:18px}.btn.hint{background:#ebedea;border-color:#f3dc8c}.btn.restart{align-items:center;gap:5px;display:inline-flex}.restart-icon{flex:none}.restart-start{justify-content:center;align-items:center;gap:6px;display:inline-flex}.link{color:inherit;background:0 0;border:none;padding:0 0 0 8px;text-decoration:underline}.chip{color:#fff;background:var(--primary);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:300;display:inline-block}.chip.ta{background:var(--accent)}.diff-easy.chip{background:var(--easy);color:var(--easy-on)}.diff-normal.chip{background:var(--normal);color:var(--normal-on)}.diff-name.chip{background:var(--name);color:var(--name-on)}.diff-hard.chip{background:var(--hard);color:var(--hard-on)}.diff-blank.chip{background:var(--blank);color:var(--blank-on)}.app-header{z-index:10;padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#ffffffeb;justify-content:space-between;align-items:center;gap:8px;display:flex;position:sticky;top:0}.logo{background:0 0;border:none;align-items:center;gap:6px;padding:0;display:flex}.logo-img{width:auto;height:36px;display:block}.logo-text{letter-spacing:.02em;font-size:20px;font-weight:700}.logo-text small{color:var(--muted);font-size:11px;font-weight:300}.app-header nav{align-items:center;gap:6px;display:flex}.nav-btn{white-space:nowrap;color:var(--muted);background:0 0;border:none;border-radius:999px;padding:8px 12px;font-weight:500}.app-header .login-btn{font-weight:500}.icon-btn{border:2px solid var(--line);background:var(--card);width:36px;height:36px;color:var(--muted);border-radius:50%;font-weight:500}.icon-btn.on{border-color:var(--primary);color:var(--primary)}@media (width<=520px){.nav-btn{padding:8px;font-size:14px}.icon-btn{width:32px;height:32px}.logo-text small{display:none}}@media (width<=420px){.app-header{padding-left:10px;padding-right:10px}.logo-img{height:30px}.app-header nav{gap:4px}.nav-btn{padding:7px;font-size:13px}}.error-bar{color:#8a2c17;background:#fde8e3;border-radius:12px;margin:12px 16px 0;padding:10px 14px}.loading{min-height:100dvh;color:var(--muted);place-items:center;font-weight:300;display:grid}.home,.passport{max-width:1080px;margin:0 auto;padding:16px 16px 64px}.hero{color:#fff;box-shadow:var(--shadow);background:linear-gradient(135deg,#2f6f8f,#3d8fa3 55%,#6fb3a8);border-radius:24px;margin-bottom:24px;padding:24px 22px 18px;overflow:hidden}.hero h1{font-size:clamp(24px,4.2vw,36px);line-height:1.25}.hero p{opacity:.92;margin:8px 0 16px}.hero .muted{color:#fffc}.deep-path{flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 12px;padding:0;list-style:none;display:flex}.deep-path li{align-items:center;gap:4px;display:flex}.deep-path button{color:#fff;background:#ffffff2e;border:none;border-radius:999px;align-items:center;gap:4px;padding:6px 12px;font-weight:300;display:flex}.deep-path li.done button{color:var(--primary);background:#fff}.deep-path li.locked{opacity:.7;font-weight:300}.dp-arrow{opacity:.7;padding:0 2px;font-weight:500}.deep-meter{background:#ffffff40;border-radius:99px;height:8px;margin-bottom:6px;overflow:hidden}.deep-meter div{background:var(--gold);border-radius:99px;height:100%;transition:width .4s}.modal-back{z-index:50;background:#14232d73;place-items:center;padding:16px;animation:.2s fade;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border-radius:22px;width:min(460px,100%);max-height:calc(100dvh - 32px);padding:22px 20px 18px;animation:.25s ease-out rise;position:relative;overflow:auto;box-shadow:0 20px 60px #00000040}.close{color:var(--muted);background:0 0;border:none;font-size:26px;position:absolute;top:8px;right:10px}.sheet-head{align-items:center;gap:14px;margin-bottom:16px;padding-right:28px;display:flex}.sheet-emoji{font-size:44px}.sheet-head h2{font-size:24px}.diff-list{gap:8px;margin-bottom:14px;display:grid}.diff-opt{text-align:left;border:2px solid var(--line);background:var(--card);border-radius:14px;grid-template-columns:112px 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.diff-label{white-space:nowrap;font-size:17px;font-weight:500}.diff-desc{color:var(--muted);font-size:13px}.diff-rec{color:var(--gold);white-space:nowrap;font-size:14px}.diff-rec small{color:var(--muted)}.diff-opt.active.diff-easy{border-color:var(--easy);background:var(--easy-bg)}.diff-opt.active.diff-normal{border-color:var(--normal);background:var(--normal-bg)}.diff-opt.active.diff-name{border-color:var(--name);background:var(--name-bg)}.diff-opt.active.diff-hard{border-color:var(--hard);background:var(--hard-bg)}.diff-opt.active.diff-blank{border-color:var(--blank);background:var(--blank-bg)}.diff-easy .diff-label{color:var(--easy-ink)}.diff-normal .diff-label{color:var(--normal-ink)}.diff-name .diff-label{color:var(--name-ink)}.diff-hard .diff-label{color:var(--hard-ink)}.diff-blank .diff-label{color:var(--blank-ink)}.toggle{align-items:center;gap:8px;margin:0 4px 16px;font-size:15px;font-weight:300;display:flex}.toggle input{width:20px;height:20px;accent-color:var(--accent)}.toggle-icon{color:var(--muted);flex:none;margin-right:-2px}.result{text-align:center}.result h2{margin-top:6px;font-size:28px}.big-emoji{font-size:64px}.stamp-anim{place-items:center;margin:4px 0;display:grid}.stamp{border:5px double var(--accent);width:150px;height:150px;color:var(--accent);background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;animation:.45s cubic-bezier(.2,1.6,.4,1) both stamp;display:flex;transform:rotate(-10deg)}.stamp-emoji{font-size:44px}.stamp-title{max-width:120px;font-size:15px;font-weight:500}.stamp-diff{font-size:12px;font-weight:300}.stars{letter-spacing:6px;color:#d9d2c2;font-size:40px}.star.on{color:var(--gold);animation:.4s both pop;display:inline-block}.star.on:nth-child(2){animation-delay:.12s}.star.on:nth-child(3){animation-delay:.24s}.result-stats{grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0;display:grid}.result-stats div{background:var(--card);border-radius:12px;flex-direction:column;padding:8px;display:flex}.result-stats b{font-size:22px}.result-stats span{color:var(--muted);font-size:12px}.result-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:12px;display:flex}.zoom-next{background:var(--card);border-radius:14px;margin-bottom:8px;padding:10px}.zoom-next-title{margin-bottom:6px;font-weight:500}.zoom-next-list{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.new-ach{text-align:left;background:#ebedea;border-radius:14px;margin-bottom:12px;padding:10px 12px}.new-ach-title{margin-bottom:4px;font-weight:500}.ach-row,.ach{align-items:center;gap:10px;display:flex}.ach-row b,.ach b{display:block}.ach-row small,.ach small{color:var(--muted)}.ach-icon{border:2px solid var(--line);height:30px;color:var(--clear);border-radius:50%;flex:0 0 30px;place-items:center;font-size:15px;font-weight:500;display:grid}.puzzle{touch-action:manipulation;-webkit-user-select:none;user-select:none;flex-direction:column;height:100dvh;display:flex;overflow:hidden}.pz-header{padding:8px 12px;padding-top:max(8px, env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--paper);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pz-title{flex:1;align-items:center;gap:8px;min-width:140px;display:flex}.pz-emoji{font-size:28px}.pz-name{font-size:18px;font-weight:500}.pz-title-row{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.pz-sub{gap:4px;display:flex}.pz-stats{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.stat{font-variant-numeric:tabular-nums;padding:5px 4px;font-size:14px;font-weight:500}.stat.warn{color:var(--accent)}@media (width<=600px){.pz-header{gap:6px;padding:6px 8px}.pz-header>.btn.ghost{padding:6px}.pz-emoji{display:none}.pz-name{font-size:16px}.pz-stats{justify-content:space-between;width:100%}.stat{padding:4px 2px;font-size:13px}.btn.hint,.btn.restart{padding:5px 10px;font-size:13px}.btn.restart{gap:3px}.restart-long{display:none}}.pz-body{flex:1;min-height:0;display:flex}.board-wrap{background:var(--ocean);flex:1;min-width:0;min-height:0;position:relative}.board{touch-action:none;cursor:grab;width:100%;height:100%;display:block}.board.targeting{cursor:crosshair}.ocean{fill:var(--ocean)}.sphere{fill:#c9e4f0;stroke:#a9cfe0}.graticule{fill:none;stroke:#fff;stroke-opacity:.55}.context{fill:var(--land);stroke:var(--land-line)}.slot{fill:var(--slot);stroke:var(--slot)}.lake{fill:var(--lake)}.lake-layer{pointer-events:none}.lake-shore{pointer-events:none;fill:none;stroke:#7fa3b8;stroke-opacity:.8;stroke-linejoin:round}.slot-outline{fill:none;stroke:#9fb3bd;stroke-linejoin:round}.silhouette{fill:none;stroke:#56707d;stroke-linejoin:round}.slot-dot{fill:var(--slot);stroke:#7d97a3}.placed-outline{fill:none;stroke:#1d3440;stroke-opacity:.75;stroke-linejoin:round}.placed.pop{transform-box:fill-box;transform-origin:50%;animation:.5s ease-out placed}.tiny-dot{stroke:#1d3440}.labels{pointer-events:none;text-anchor:middle;font-weight:500}.lb{paint-order:stroke;stroke:#fff;stroke-linejoin:round}.lb.placed{fill:var(--ink)}.lb.slot{fill:#8aa0ab}.hint-mark path{fill:#f2b70559;stroke:var(--gold);animation:.65s ease-in-out infinite alternate blink}.hint-mark circle{fill:none;stroke:var(--gold);animation:.65s ease-in-out infinite alternate blink}.miss{fill:#e76f5140;stroke:var(--accent);pointer-events:none;animation:.8s ease-out forwards missfade}.toast{background:var(--card);box-shadow:var(--shadow);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:calc(100% - 24px);padding:8px 16px;font-weight:500;animation:1.6s ease-out forwards toast;position:absolute;top:12px;left:50%;overflow:hidden;transform:translate(-50%)}.toast.ok{color:#2e7d4a}.toast.ng{color:#b0412a}.zoom-ctl{flex-direction:column;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.zoom-ctl button{border:2px solid var(--line);background:var(--card);width:40px;height:40px;box-shadow:var(--shadow);border-radius:12px;font-size:20px;font-weight:500}.tray{border-left:1px solid var(--line);touch-action:pan-y;background:#f5efe2;flex-shrink:0;grid-template-columns:repeat(2,1fr);align-content:start;gap:8px;width:260px;padding:10px;display:grid;overflow-y:auto}.tray-empty{text-align:center;color:var(--muted);grid-column:1/-1;padding:20px}.piece{border:2px solid var(--line);background:var(--card);touch-action:inherit;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 6px;transition:transform .1s,border-color .1s;display:flex}.piece:hover{border-color:#b7c8cf}.piece.selected{border-color:var(--primary);background:#eaf4fa;transform:translateY(-2px)}.piece.dragging{opacity:.35}.piece-name{text-align:center;word-break:keep-all;overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:1.2}.piece-kana{color:var(--muted);font-size:10px;line-height:1.1}.thumb{pointer-events:none}@media (width<=760px){.pz-body{flex-direction:column}.tray{border-left:none;border-top:1px solid var(--line);width:100%;height:124px;padding:8px;padding-bottom:max(8px, env(safe-area-inset-bottom));touch-action:pan-x;display:flex;overflow:auto hidden}.piece{flex:0 0 88px}}.drag-ghost{z-index:40;pointer-events:none;filter:drop-shadow(0 6px 10px #00000040);position:fixed}.drag-ghost svg{display:block;overflow:visible}.drag-ghost-halo{fill:#fff9;stroke:var(--primary);stroke-width:2px;vector-effect:non-scaling-stroke}.pp-cover{background:var(--primary);color:#fff;box-shadow:var(--shadow);border-radius:24px;align-items:center;gap:16px;padding:22px;display:flex}.pp-emblem{font-size:56px}.pp-cover h1{letter-spacing:.1em;font-size:26px}.pp-stats{flex-wrap:wrap;gap:14px;margin-top:6px;font-size:14px;display:flex}.pp-stats b{font-size:22px}.pp-section{margin:26px 0}.pp-section h2{margin-bottom:10px;font-size:20px}.learn-map{background:var(--card);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);display:block}.learn-map.jp{background:var(--ocean);max-width:560px}.lm-sphere{fill:var(--ocean)}.lm-country{fill:#e9e2d3;stroke:#fff;stroke-width:.6px;vector-effect:non-scaling-stroke}.lm-country.faint{fill:#d9e7d8}.lm-country.on{stroke:#1d344080}.stamp-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:10px;display:grid}.pp-stamp{aspect-ratio:1;border:3px dashed var(--line);text-align:center;color:#b6ab98;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;padding:8px;display:flex}.pp-stamp.on{border:4px double var(--accent);color:var(--accent);background:#fff;transform:rotate(-6deg)}.pp-stamp:nth-child(2n).on{transform:rotate(5deg)}.pp-stamp-emoji{font-size:22px;font-weight:500}.pp-stamp-name{font-size:12px;font-weight:500}.pp-stamp-stars{color:var(--gold);font-size:11px}.ach-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;display:grid}.ach{background:var(--card);opacity:.55;border-radius:14px;padding:10px 12px}.ach.on{opacity:1;box-shadow:var(--shadow)}.credits ul{color:var(--muted);padding-left:18px;font-size:13px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(20px)}}@keyframes stamp{0%{opacity:0;transform:rotate(-10deg)scale(2.2)}}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.3)}}@keyframes placed{0%{opacity:.6;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}@keyframes blink{0%{opacity:.35}to{opacity:1}}@keyframes missfade{to{opacity:0}}@keyframes toast{0%{opacity:0;transform:translate(-50%,-6px)}12%,80%{opacity:1;transform:translate(-50%)}to{opacity:0}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.defs{width:0;height:0;position:absolute;overflow:hidden}.board.carrying{cursor:none}.drag-ghost.carry{opacity:.92}.legend{color:var(--muted);flex-wrap:wrap;grid-column:1/-1;gap:4px 10px;padding:2px 2px 6px;font-size:12px;display:flex}.legend-item{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.legend-item i{border-radius:3px;width:10px;height:10px;display:inline-block}.piece{position:relative}.piece.tinted{border:4px solid var(--region);padding:6px 2px 4px}.piece.tinted:hover{border-color:var(--region);filter:brightness(1.04)}.piece.tinted.selected{border-color:var(--region);box-shadow:0 0 0 3px var(--primary);background:color-mix(in srgb, var(--region) 22%, var(--card))}.piece.tinted.dragging{opacity:1;border-color:color-mix(in srgb, var(--region) 70%, var(--card));background:color-mix(in srgb, var(--region) 32%, var(--card));box-shadow:none;transform:none}.piece.tinted.dragging>*{opacity:.3}.piece{-webkit-tap-highlight-color:transparent}@media (hover:none),(pointer:coarse){.piece:focus,.piece:focus-visible{outline:none}.piece.selected{border-color:var(--line)}.piece.tinted.selected{border-color:var(--region);box-shadow:none}}@media (width<=760px){.legend{flex-flow:column;flex:none;justify-content:center;max-width:150px;overflow:hidden}}.modal-title{margin-bottom:12px;font-size:22px}.setting{border:none;margin:0 0 16px;padding:0}.setting legend{margin-bottom:8px;padding:0;font-size:14px;font-weight:500}.setting.row{flex-wrap:wrap;gap:18px;display:flex}.seg{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;display:grid}.seg-opt{text-align:left;border:2px solid var(--line);background:var(--card);border-radius:12px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;display:flex}.seg-opt.active{border-color:var(--primary);background:#eef5f8}.seg-opt small{color:var(--muted);font-size:12px}.style-swatch{border-radius:6px;width:100%;height:22px;margin-bottom:4px}.sw-terrain{background:linear-gradient(90deg,#a0b281 0 22%,#b7bf94 22% 40%,#c7caa3 40% 55%,#b5a988 55% 72%,#9f8c6e 72% 88%,#8b715a 88%)}.sw-region{background:linear-gradient(90deg,#c9a86a 0 25%,#8fae84 25% 50%,#c98f76 50% 75%,#9aa7c2 75% 100%)}.sw-plain{background:var(--piece-plain)}.switch{align-items:center;gap:8px;font-weight:300;display:inline-flex}.switch input{width:18px;height:18px;accent-color:var(--primary)}.login-btn{padding:6px 14px}.avatar-btn{border:2px solid var(--line);background:var(--primary);color:#fff;border-radius:50%;width:36px;height:36px;padding:0;font-weight:500;position:relative;overflow:visible}.avatar-btn img{object-fit:cover;border-radius:50%;width:100%;height:100%}.sync-dot{border:2px solid var(--paper);background:#bbb;border-radius:50%;width:11px;height:11px;position:absolute;bottom:-2px;right:-2px}.sync-dot.synced{background:#4c9a6a}.sync-dot.syncing{background:var(--gold)}.sync-dot.error{background:var(--accent)}.auth .google{justify-content:center;align-items:center;gap:10px;margin:14px 0 4px;display:flex}.or{color:var(--muted);align-items:center;gap:10px;margin:10px 0;font-size:12px;display:flex}.or:before,.or:after{content:"";background:var(--line);flex:1;height:1px}.auth-form{gap:10px;margin-top:8px;display:grid}.auth-form label{gap:4px;font-size:13px;font-weight:300;display:grid}.auth-form input{font:inherit;border:2px solid var(--line);background:#fff;border-radius:10px;padding:10px 12px}.auth-form input:focus{border-color:var(--primary);outline:none}.form-error{color:#b0412a;margin:0;font-size:13px;font-weight:300}.auth-form label.agree{cursor:pointer;align-items:flex-start;gap:8px;font-size:13px;line-height:1.6;display:flex}.auth-form label.agree input{width:18px;height:18px;accent-color:var(--primary);flex:none;margin:2px 0 0;padding:0}.auth-form label.agree a,.legal-note a{color:var(--primary)}.legal-note{color:var(--muted);margin:8px 0 0;font-size:12px;font-weight:300;line-height:1.6}.danger-zone{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.danger-zone .btn.danger{color:#b0412a;background:#fff;border-color:#efc9bf}.danger-zone .btn.danger.solid{color:#fff;background:#c9352b;border-color:#c9352b}.danger-zone .auth-form{margin-top:6px}.switch-mode{text-align:center;color:var(--muted);margin:14px 0 0}.guest-note{color:var(--muted);margin:0 0 10px;font-size:13px}.terrain-bg{pointer-events:none}.context.over-terrain{fill:#e6e8eb;fill-opacity:.72}.terrain-bg{animation:.5s ease-out fade}.terrain-outer{pointer-events:none;animation:.5s ease-out fade}.terrain-loading{box-shadow:var(--shadow);color:var(--muted);pointer-events:none;background:#ffffffe6;border-radius:999px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:300;display:flex;position:absolute;bottom:12px;left:12px}.spinner{border:2px solid #cfd8dd;border-top-color:var(--primary);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tray-row{color:var(--muted);border-bottom:1px solid var(--line);grid-column:1/-1;padding:6px 4px 0;font-size:12px;font-weight:500}@media (width<=760px){.tray-row{border-bottom:none;border-left:1px solid var(--line);flex:none;align-self:stretch;align-items:flex-start;padding:2px 2px 0 6px;display:flex}}.muni-picker .pref-rows{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);gap:6px;margin:8px 0 16px;padding:12px;display:grid}.pref-row{grid-template-columns:84px 1fr;align-items:start;gap:8px;display:grid}.pref-row-name{color:var(--muted);padding-top:6px;font-size:12px;font-weight:300}.pref-chips{flex-wrap:wrap;gap:5px;display:flex}.pref-chip{border:1.5px solid var(--line);background:var(--paper);border-radius:999px;padding:4px 10px;font-size:13px;font-weight:300;line-height:1.3}.pref-chip:hover{border-color:var(--primary)}.pref-chip.active{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:700}.chip-stars{color:var(--gold);margin-left:3px;font-size:10px}.muni-title{margin:4px 0 10px;font-size:17px}.country-chips{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);gap:6px;margin:8px 0 16px;padding:12px}.country-chips .pref-chip{padding:6px 12px;font-size:14px}.muni-title+.muted{margin:-6px 0 10px}@media (width<=560px){.pref-row{grid-template-columns:1fr;gap:4px}.pref-row-name{padding-top:0}}.home{padding-top:0}.explore{width:100vw;margin-bottom:32px;margin-left:calc(50% - 50vw);scroll-margin-top:60px}.explorer{background:#cad4db;height:min(52vw,100vh - 130px);min-height:440px;position:relative;overflow:hidden}.ex-stage{height:100%;position:relative}.ex-map.ex-ghost{pointer-events:none;position:absolute;inset:0}.ex-map{cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;height:100%;display:block}.ex-layer{animation:.35s ease-out ex-in}.ex-outer{animation:.5s ease-out ex-in}@keyframes ex-in{0%{opacity:0}}.ex-sphere{fill:#bfcdd7}.ex-context{fill:#dfe1e4}.ex-context-line{fill:none;stroke:#46504640;stroke-width:.5px;vector-effect:non-scaling-stroke}.ex-veil{fill:#0000004d;pointer-events:none}.ex-piece{fill:var(--piece-plain);stroke:none;transition:fill .25s}.ex-map.terrain .ex-piece{fill:#fff0}.ex-lake{fill:var(--lake);pointer-events:none}.ex-piece.dim,.ex-map.terrain .ex-piece.dim{fill:#0000004d}.ex-edges{pointer-events:none}.ex-edge{fill:none;stroke:#fffffff2;stroke-width:.7px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.ex-map.terrain .ex-edge{stroke:#323c3273}.ex-edge.dim,.ex-map.terrain .ex-edge.dim{stroke:#fff9}.ex-piece.hover,.ex-piece.dim.hover{fill:#eee4cf}.ex-map.terrain .ex-piece.hover,.ex-map.terrain .ex-piece.dim.hover{fill:#ffffff4d}.explorer.busy .ex-map{cursor:progress}.ex-loading{color:var(--muted);pointer-events:none;place-items:center;font-weight:300;display:grid;position:absolute;inset:0}.crumbs{flex-wrap:wrap;align-items:center;gap:2px;padding:10px 16px 8px;font-size:14px;display:flex}.crumb-group{display:contents}.crumbs button{color:var(--ink);background:0 0;border:none;padding:4px;font-weight:300}.crumbs button:first-child{padding-left:0}.crumbs button:hover{text-decoration:underline}.crumbs button.here{cursor:default;font-weight:500;text-decoration:none}.crumbs button:not(.here){color:var(--primary)}.crumbs i{color:var(--muted);font-style:normal}.crumbs-hint{color:var(--muted);white-space:nowrap;margin-left:auto;padding-left:12px;font-size:12px;font-weight:300}.crumbs-hint .hint-click{display:none}@media (hover:hover) and (pointer:fine){.crumbs-hint .hint-click{display:inline}.crumbs-hint .hint-tap{display:none}}.ex-panel{z-index:3;background:#fffffff0;border-radius:14px;flex-direction:column;gap:10px;width:220px;padding:12px 14px 14px;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 2px 12px #1d344024}.ex-panel.placed{will-change:transform;transition:transform .8s cubic-bezier(.65,0,.35,1);top:0;left:0;right:auto}.ex-panel.placed.no-anim{transition:none}@media (width>=761px){.ex-panel:not(.placed):not(.pick-panel){opacity:0}.ex-panel.placed.no-anim{animation:.3s ease-out ex-in}}@media (prefers-reduced-motion:reduce){.ex-panel.placed{transition:none}}.ex-head{align-items:center;gap:2px;min-width:0;display:flex}.ex-title{overflow-wrap:anywhere;min-width:0;margin:0;font-size:18px;line-height:1.25}.ex-back{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;margin-left:-4px;padding:0 10px 7px 0;font-size:42px;line-height:1;transform:translateY(-1px)}.ex-back:hover{color:var(--ink)}.ex-meta{color:var(--muted);flex-wrap:wrap;gap:4px 10px;margin:-4px 0 0;font-size:13px;font-weight:300;display:flex}.ex-layers{background:#e7e9ea;border-radius:10px;gap:3px;padding:3px;display:flex}.ex-layers button{color:var(--muted);background:0 0;border:none;border-radius:8px;flex:1;padding:5px 4px;line-height:1.2}.ex-layers button b{font-size:13px;display:block}.ex-layers button small{font-size:10px;font-weight:300}.ex-layers button.on{color:var(--ink);background:#fff;box-shadow:0 1px 3px #1d344026}.ex-go{width:100%;margin:0;padding:10px;font-size:15px;font-weight:700}@media (width<=760px){.explorer{height:auto;min-height:0}.ex-stage{height:auto}.ex-map{height:62vh;min-height:320px}.crumbs{padding:8px 12px 6px}.ex-panel,.ex-panel.placed{width:auto;box-shadow:none;border-bottom:1px solid var(--line);background:#fff;border-radius:0;grid-template-columns:1fr auto;align-items:center;gap:8px 10px;padding:10px 12px;transition:none;display:grid;position:static;transform:none!important}.ex-head{grid-area:1/1}.ex-meta{grid-area:2/1;margin:0}.ex-layers{grid-area:3/1/auto/-1}.ex-go{grid-area:1/2/3;width:auto;padding:9px 14px;font-size:14px}}.resume-bar{background:#ebedea;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;margin:12px 16px 0;padding:10px 14px;font-weight:300;display:flex}.resume-actions{align-items:center;gap:12px;display:flex}.crash-screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100dvh;padding:24px;display:flex}h1,h2,h3,h4{letter-spacing:.02em;font-weight:700}.app-header{border-bottom-color:var(--line);background:#fffffff0;padding-left:max(16px,50vw - 590px);padding-right:max(16px,50vw - 590px)}.nav-btn{color:var(--ink);padding:8px 16px;font-weight:500}.nav-btn:hover:not(.active){color:var(--primary)}.nav-btn.active{background:var(--primary);color:#fff}.app-header .login-btn{border:1.5px solid var(--line);background:#fff;padding:7px 18px}.app-header .login-btn:hover{border-color:var(--primary);color:var(--primary)}.btn{border-width:1.5px}.btn.primary{background:var(--primary);border-color:var(--primary);font-weight:500}.btn.primary:hover:not(:disabled){background:var(--primary-dark);border-color:var(--primary-dark)}.btn .arrow,.btn svg{vertical-align:-2px;margin-left:4px}.home{max-width:1180px;padding:0 24px 72px}@media (width<=760px){.home{padding:0 16px 56px}}.catalog{flex-direction:column;gap:48px;display:flex}.sec-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px;padding-bottom:10px;display:flex}.sec-h{margin:0;font-size:26px}.sec-tag{background:var(--soft);color:var(--primary);border-radius:999px;flex-shrink:0;padding:4px 12px;font-size:13px;font-weight:500}.sub-empty{color:var(--muted);margin:18px 0 0;font-size:13px}.sec-lead{color:var(--muted);margin:8px 0 0;font-size:14px}.sub{margin-top:26px}.sub-h{margin:0 0 4px;font-size:15px}.sub-lead{color:var(--muted);margin:0 0 12px;font-size:12px}.sub-h+.grid{margin-top:10px}.sub-h4{color:var(--muted);margin:18px 0 8px;font-size:13px;font-weight:500}.tabs{overscroll-behavior-x:contain;scrollbar-width:none;box-shadow:inset 0 -1px 0 var(--line);gap:4px 30px;margin:-8px 0 4px;display:flex;overflow:auto hidden}.tabs::-webkit-scrollbar{display:none}.tab{color:var(--muted);background:0 0;border:none;border-bottom:2.5px solid #0000;flex-shrink:0;padding:12px 2px 11px;font-size:17px;font-weight:500}.tab:hover{color:var(--ink)}.tab.on{color:var(--primary);border-bottom-color:var(--primary);font-weight:700}.select{flex-shrink:0;display:inline-block;position:relative}.select select{appearance:none;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:10px;min-width:140px;padding:8px 36px 8px 14px;font-size:14px;font-weight:500}.select select:hover{border-color:var(--primary)}.select:after{content:"";border-right:1.8px solid var(--ink);border-bottom:1.8px solid var(--ink);pointer-events:none;width:7px;height:7px;position:absolute;top:50%;right:14px;transform:translateY(-70%)rotate(45deg)}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;display:grid}.grid-big{grid-template-columns:repeat(2,1fr);gap:18px}.grid-6{grid-template-columns:repeat(6,1fr)}.grid-big.grid-3{grid-template-columns:repeat(3,1fr);gap:16px}.grid-3 .card-big .card-thumb{aspect-ratio:16/10}.grid-3 .card-big .card-body{padding:14px 16px 16px}.grid-3 .card-big .card-title{font-size:17px}.grid-3 .card-progress .bar{width:min(120px,45%)}.grid.grid-5{grid-template-columns:repeat(auto-fill,minmax(max(180px,20% - 11.2px),1fr))}.grid-5 .card-title{font-size:15px}.grid-wide{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.card{text-align:left;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;padding:0;transition:transform .15s,box-shadow .15s,border-color .15s;display:flex;position:relative;overflow:hidden}.card:hover{border-color:#c9d8c8;transform:translateY(-2px);box-shadow:0 2px 4px #1c3a2f0f,0 12px 28px #1c3a2f1a}.card-thumb{aspect-ratio:16/10;background:var(--ocean);position:relative;overflow:hidden}.card-big .card-thumb{aspect-ratio:16/7}.card-thumb .stage-thumb{width:88%;height:88%;position:absolute;inset:6%}.t-context{fill:#dfe9e4}.t-lake{fill:var(--lake)}.t-piece{fill:var(--sage)}.t-border{fill:none;stroke:var(--sage-line);stroke-width:.6px;vector-effect:non-scaling-stroke;stroke-linejoin:round}.t-outline{fill:none;stroke:#8fa878;stroke-width:.6px;vector-effect:non-scaling-stroke}.card-body{flex-direction:column;gap:4px;padding:10px 12px 12px;display:flex}.card-title{align-items:center;gap:8px;font-size:14px;font-weight:700;line-height:1.35;display:flex}.card-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12px;display:flex}.card-tile .card-body{text-align:center;align-items:center}.card-tile .card-title,.card-tile .card-meta{justify-content:center}.card-big .card-body{gap:6px;padding:18px 22px 20px}.card-big .card-title{font-size:19px}.card-big .card-meta{font-size:13px}.card-progress{align-items:center;gap:12px;margin-top:8px;display:flex}.card-progress .bar{gap:3px;width:min(180px,50%);height:6px;display:flex}.card-progress .bar i{background:#e5ebe3;border-radius:999px;flex:1}.card-progress .bar i.on{background:var(--primary)}.bar-label{color:var(--muted);font-size:11px}.card-wide .card-thumb{aspect-ratio:16/8}.card-wide .card-body{padding:12px 14px}.card-wide .card-title{font-size:15px}.card-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-foot .arrow{color:var(--ink);flex-shrink:0}.card:hover .card-foot .arrow{color:var(--primary)}.diff-dots{gap:3px;display:inline-flex}.diff-dots .dot{background:#dfe5dc;border-radius:50%;width:6px;height:6px}.diff-dots .dot.on.diff-easy{background:var(--easy)}.diff-dots .dot.on.diff-normal{background:var(--normal)}.diff-dots .dot.on.diff-name{background:var(--name)}.diff-dots .dot.on.diff-hard{background:var(--hard)}.diff-dots .dot.on.diff-blank{background:var(--blank)}.pick{margin-top:22px}.pick-label{color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:500}.pick-chips{gap:6px}.pick-chips .pref-chip{padding:6px 13px;font-size:14px}.tabs+.pick{margin-top:14px}.country{border-top:1px dashed var(--line);margin-top:28px;padding-top:24px}.sec-head+.pick{margin-top:0}.sec-head+.country{border-top:none;margin-top:0;padding-top:0}.country-crumb{color:var(--muted);gap:8px;margin-bottom:6px;font-size:12px;display:flex}.country-crumb b{color:var(--ink);font-weight:500}.country-crumb i{color:#b3bfb7;font-style:normal}.country-h{margin:0 0 4px;font-size:22px;line-height:1.4}.country-lead{color:var(--muted);margin:0 0 16px;font-size:13px}.country .sub-h+.pick,.sub-h+.pick{margin-top:10px}.grid.grid-country-1{grid-template-columns:1fr}.grid-country-1 .card-big .card-thumb{aspect-ratio:16/6}.feature{text-align:left;border:1px solid var(--line);width:100%;box-shadow:var(--shadow);background:#fff;border-radius:16px;grid-template-columns:minmax(220px,1fr) 1.3fr;gap:24px;margin-top:18px;padding:12px;transition:box-shadow .15s,border-color .15s;display:grid}.feature:hover{border-color:#c9d8c8;box-shadow:0 2px 4px #1c3a2f0f,0 12px 28px #1c3a2f1a}.feature-thumb{aspect-ratio:16/9;background:var(--ocean);border-radius:10px;position:relative;overflow:hidden}.feature-thumb .stage-thumb{width:88%;height:88%;position:absolute;inset:6%}.feature-body{flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;padding:8px 8px 8px 0;display:flex}.feature-body .card-title{font-size:18px}.feature-lead{color:var(--muted);margin:4px 0 10px;font-size:13px;line-height:1.7}.btn.pill{border-radius:999px;padding:9px 20px;font-size:14px}.feature:hover .btn.primary{background:var(--primary-dark);border-color:var(--primary-dark)}.site-footer{border-top:1px solid var(--line);color:var(--muted);background:#fff;flex-wrap:wrap;align-items:center;gap:10px 24px;padding:22px max(24px,50vw - 566px);font-size:12px;display:flex}.site-footer .logo-img{height:26px}.footer-nav{flex-wrap:wrap;gap:8px 20px;margin-left:auto;display:flex}.footer-nav a{color:var(--muted);font-size:12px;text-decoration:none}.footer-nav a:hover{color:var(--primary)}.footer-nav button{color:var(--muted);background:0 0;border:none;padding:0;font-size:12px}.footer-nav button:hover{color:var(--primary)}.split-note{background:var(--soft);border-radius:10px;margin:0 0 10px;padding:8px 10px}.linkish{color:var(--primary);background:0 0;border:none;padding:0 4px;font-weight:500}@media (width<=900px){.grid-6{grid-template-columns:repeat(3,1fr)}}@media (width<=760px){.feature{grid-template-columns:1fr}.country-h{font-size:19px}.grid-country-1 .card-big .card-thumb{aspect-ratio:16/9}.feature-body{padding:4px 6px 8px}}@media (width<=560px){.grid-big{grid-template-columns:1fr}.grid,.grid-6{grid-template-columns:repeat(2,1fr);gap:10px}.grid.grid-big{grid-template-columns:1fr}.grid.grid-5{grid-template-columns:repeat(2,1fr)}.sec-h{font-size:22px}.tabs{gap:4px 20px}.tab{font-size:15px}.grid.grid-big.grid-3{grid-template-columns:repeat(2,1fr);gap:10px}.grid-3 .card-big .card-body{padding:10px 12px 12px}.grid-3 .card-big .card-title{font-size:15px}.grid-3 .card-big .card-meta{font-size:12px}.grid-3 .card-progress{flex-wrap:wrap;gap:4px 8px}.grid-3 .card-progress .bar{width:100%}.card-big .card-body{padding:14px 16px 16px}.sec-head{flex-wrap:wrap;align-items:flex-start}.footer-nav{margin-left:0}}@media (width<=520px){.nav-btn{padding:7px 10px;font-size:13px}.app-header .login-btn{padding:6px 12px;font-size:13px}.app-header nav{gap:2px}}.app-header .logo-mark{width:30px;height:30px;display:none}@media (width<=440px){.app-header .logo-img{display:none}.app-header .logo-mark{display:block}}@media (width>=761px){.ex-panel{border-radius:999px;grid-template-rows:auto auto;grid-template-columns:auto auto auto;align-items:center;gap:2px 16px;width:auto;padding:10px 10px 10px 28px;display:grid}.ex-head{white-space:nowrap;grid-area:1/1}.ex-panel:has(.ex-layers) .ex-head{grid-row:1/3}.ex-meta{white-space:nowrap;grid-area:2/1;margin:0}.ex-layers{border-radius:999px;grid-area:1/2/3;min-width:170px}.ex-layers button{white-space:nowrap;border-radius:999px;padding:5px 12px}.ex-go{border-radius:999px;grid-area:1/3/3;width:auto;padding:13px 24px}}.app-header{-webkit-backdrop-filter:none;backdrop-filter:none;background:#222426;border-bottom-color:#222426}.app-header .nav-btn,.app-header .nav-btn.active{color:#ffffffb8;background:0 0;border-radius:0;padding:8px 10px;text-decoration:none}.app-header .nav-btn:hover:not(.active){color:#fff;text-underline-offset:5px;text-decoration:underline}.app-header .nav-btn.active{color:#fff;text-underline-offset:5px;font-weight:700;text-decoration:underline;text-decoration-thickness:2px}.app-header .icon-btn{color:#fff;background:0 0;border-color:#0000}.app-header .icon-btn:hover{background:#ffffff1f}.app-header .login-btn{color:#222426;background:#fff;border:1.5px solid #fff;font-weight:700}.app-header .login-btn:hover{background:var(--primary-soft);border-color:var(--primary-soft);color:var(--ink)}@media (width<=520px){.app-header .nav-btn,.app-header .nav-btn.active{padding:7px 6px;font-size:13px}}.pick-on-map{margin:8px auto 0;padding:0;font-size:13px;display:block}.puzzle.picking .tray,.board.picking .labels,.board.picking .placed-outline{display:none}.board.picking{cursor:pointer}.pick-piece{fill:#0000;stroke:none;transition:fill .25s}.pick-piece.no{fill:#f6f3ecb8}.pick-piece.hover{fill:#ffffff61}.pick-piece.on{fill:#ffffff8c}.pick-edge{fill:none;stroke:#fffffff2;stroke-width:.7px;vector-effect:non-scaling-stroke;stroke-linejoin:round;pointer-events:none}.pick-edge.on{stroke:#1d34408c;stroke-width:1.2px}.pick-panel .hint-click{display:none}@media (hover:hover) and (pointer:fine){.pick-panel .hint-click{display:inline}.pick-panel .hint-tap{display:none}}@media (width<=760px){.ex-panel.pick-panel{background:#fffffff0;border-bottom:none;border-radius:14px;width:auto;position:absolute;top:10px;left:10px;right:10px;box-shadow:0 2px 12px #1d344024}}.tray:has(.piece.name-only){grid-template-columns:1fr;gap:6px}.piece.name-only{text-align:left;border-radius:12px;flex-direction:row;justify-content:flex-start;align-items:baseline;gap:8px;padding:10px 12px}.piece.name-only .piece-name{text-align:left;font-size:15px}.piece.name-only .piece-kana{font-size:11px}@media (width<=760px){.tray:has(.piece.name-only){align-items:center;height:auto}.piece.name-only{white-space:nowrap;flex-direction:column;flex:none;align-items:center;gap:0;padding:10px 14px}.piece.name-only .piece-name{text-align:center}}.name-ghost{z-index:40;pointer-events:none;width:0;height:0;position:fixed}.name-ghost-label{white-space:nowrap;color:#fff;text-shadow:0 1px 2px #00000059;background:#5a6064d1;border:2px solid #ffffffe6;border-radius:999px;padding:9px 14px;font-size:14px;font-weight:600;line-height:1;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 6px 12px #00000038}.name-ghost.carry{opacity:.95}.ad-slot{text-align:center;max-width:1180px;margin:32px auto;padding:0 24px;display:block}.ad-slot .ad-label{letter-spacing:.08em;color:var(--muted);margin-bottom:4px;font-size:11px;display:block}.ad-slot ins.adsbygoogle{min-height:90px}.ad-slot:has(ins.adsbygoogle[data-ad-status=unfilled]){display:none}.ad-result{border-top:1px solid var(--line);margin:28px 0 0;padding:16px 0 0}.ad-slot-placeholder .ad-box{border:1px dashed var(--line);min-height:90px;color:var(--muted);background:repeating-linear-gradient(45deg,#0000 0 8px,#00000005 8px 16px);border-radius:12px;place-items:center;font-size:12px;display:grid}.app-header .logo{gap:12px;min-width:0}.logo-tagline{color:#ffffffc7;letter-spacing:.04em;white-space:nowrap;border-left:1px solid #ffffff40;padding-left:12px;font-size:13px;font-weight:500}@media (width<=860px){.logo-tagline{display:none}}@media (width<=400px){.app-header .nav-btn,.app-header .nav-btn.active{padding:7px 4px;font-size:12.5px}.app-header .icon-btn{width:30px;height:30px}}.howto{max-width:820px;margin:0 auto;padding:20px 16px 64px;line-height:1.8}.howto-cover{background:var(--primary);color:#fff;box-shadow:var(--shadow);border-radius:24px;padding:28px 24px}.howto-kicker{letter-spacing:.12em;opacity:.8;margin:0;font-size:13px;font-weight:700}.howto-cover h1{margin:4px 0 10px;font-size:clamp(22px,5vw,30px);line-height:1.4}.howto-cover p{margin:0}.howto-section{margin:32px 0}.howto-section h2{border-bottom:2px solid var(--line);align-items:center;gap:10px;margin:0 0 10px;padding-bottom:8px;font-size:20px;display:flex}.howto-num{background:var(--primary);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:15px;display:inline-grid}.howto-section p{margin:0 0 10px}.howto-steps,.howto-list{margin:0;padding-left:1.4em}.howto-steps li,.howto-list li{margin:4px 0}.howto-cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:12px 0;padding:0;list-style:none;display:grid}.howto-cards li,.howto-diffs li{background:var(--card);box-shadow:var(--shadow);border-radius:12px;padding:12px 16px}.howto-cards b{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.howto-cards span:not(.howto-tag){color:var(--muted);font-size:14px;display:block}.howto-tag{background:var(--primary-soft);color:var(--primary);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500}.howto-diffs{gap:8px;margin:12px 0;padding:0;list-style:none;display:grid}.howto-diffs li{align-items:center;gap:12px;padding:10px 14px;font-size:14px;display:flex}.howto-diffs .chip{text-align:center;flex:none;min-width:96px;font-weight:700}.howto-note{background:var(--primary-soft);border-radius:12px;padding:12px 16px;font-size:14px}.howto-defs{grid-template-columns:max-content 1fr;gap:8px 16px;margin:0;font-size:14px;display:grid}.howto-defs dt{font-weight:700}.howto-defs dd{margin:0}@media (width<=520px){.howto-defs{grid-template-columns:1fr;gap:2px}.howto-defs dd{margin-bottom:8px}.howto-diffs li{flex-direction:column;align-items:flex-start;gap:4px}}.howto-cta{text-align:center;margin-top:40px}.howto-cta .btn{padding:14px 36px;font-size:16px}.howto-cover{padding:22px 24px}.howto-cover h1{margin:0}.howto-lead{margin:16px 0 0}.howto-table{border-collapse:collapse;background:var(--card);width:100%;box-shadow:var(--shadow);border-radius:12px;margin:14px 0 10px;font-size:14px;overflow:hidden}.howto-table caption{text-align:left;padding-bottom:6px;font-weight:700}.howto-table th,.howto-table td{text-align:left;border-bottom:1px solid var(--line);padding:8px 12px}.howto-table th{background:var(--primary-soft);font-weight:700}.howto-table tr:last-child td{border-bottom:none}.ad-home{margin:24px auto 8px}.rail-zone{position:relative}.rail-zone.bleed{width:100vw;margin-left:calc(50% - 50vw);padding-inline:max(24px,50vw - 566px)}@media (width<=760px){.rail-zone.bleed{padding-inline:16px}}body.has-ad-rails .rail-zone{padding-inline:200px}body.has-ad-rails .rail-zone.bleed{padding-inline:max(200px,50vw - 566px)}.ad-rail-col{z-index:5;width:160px;position:absolute;top:0;bottom:0}.ad-rail-col.left{left:20px}.ad-rail-col.right{right:20px}.ad-rail-col .ad-rail{width:160px;margin:0;padding:0;position:sticky;top:max(80px,50vh - 300px)}.pp-cover{flex-wrap:wrap;justify-content:space-between;padding:26px 24px}.pp-cover h1{letter-spacing:.06em;margin:0 0 4px;font-size:clamp(22px,5vw,28px)}.pp-stats{opacity:.95;gap:6px 18px}.pp-more-btn{color:#fff;font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1.5px solid #ffffffd9;border-radius:999px;padding:9px 18px;font-size:14px;font-weight:700}.pp-more-btn:hover{color:var(--primary);background:#fff}.pp-head{border-bottom:2px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:8px;display:flex}.pp-head h2{margin:0}.pp-count{color:var(--muted);font-weight:500}.pp-link{font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:14px;font-weight:500}.pp-link:hover{text-underline-offset:4px;text-decoration:underline}.pp-tabs{background:var(--soft);border-radius:999px;padding:3px;display:inline-flex}.pp-tabs button{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:6px 16px;font-size:14px;font-weight:500}.pp-tabs button.active{background:var(--primary);color:#fff;font-weight:700}.ach .ach-date{color:var(--primary);margin-top:2px;font-size:11px;font-weight:500;display:block}.zoom-map{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:8px;position:relative;overflow:hidden}.zoom-map.jp{background:var(--ocean)}.zoom-map svg{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.zoom-map.jp svg{max-height:72vh}.zoom-map .lm-ocean{fill:var(--ocean)}.zm-ctl{bottom:10px;right:10px}.zm-ctl button{cursor:pointer;width:36px;height:36px;font-size:18px}.zm-label{box-shadow:var(--shadow);pointer-events:none;background:#fffffff2;border-radius:999px;padding:5px 14px;font-size:14px;font-weight:700;position:absolute;top:10px;left:10px}.zm-label.on span{color:var(--clear)}@media (width<=520px){.zm-ctl{gap:4px;bottom:6px;right:6px}.zm-ctl button{border-radius:10px;width:32px;height:32px;font-size:16px}}.rec-crumb{margin-bottom:8px}.rec-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:20px 0 0;display:flex}.rec-check{cursor:pointer;align-items:center;gap:6px;font-size:14px;display:inline-flex}.rec-check input{accent-color:var(--primary)}.rec-h2{border-bottom:2px solid var(--line);margin:0 0 10px;padding-bottom:8px;font-size:18px}.rec-table{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.rec-row{border-top:1px solid var(--line);grid-template-columns:minmax(150px,1.5fr) 128px repeat(5,minmax(64px,1fr));align-items:center;gap:8px;padding:10px 14px;font-size:14px;display:grid}.rec-row:first-child{border-top:none}.rec-row:not(.on):not(.rec-headrow){color:var(--muted)}.rec-headrow{background:var(--soft);color:var(--muted);padding-top:8px;padding-bottom:8px;font-size:12px;font-weight:700}.rec-dh{text-align:center}.rec-dh.easy{color:var(--easy-ink)}.rec-dh.normal{color:var(--normal-ink)}.rec-dh.hard{color:var(--hard-ink)}.rec-dh.name{color:var(--name-ink)}.rec-dh.blank{color:var(--blank-ink)}.rec-title b{font-weight:700;display:block}.rec-title small{color:var(--muted);font-size:12px}.rec-date{font-variant-numeric:tabular-nums;font-size:13px}.rec-cell{text-align:center;line-height:1.3}.rec-cell i{font-style:normal;display:none}.rec-cell b{font-variant-numeric:tabular-nums;color:#b9c2bc;font-weight:500;display:block}.rec-cell.on b{color:var(--ink);font-weight:700}.rec-cell em{color:var(--gold);letter-spacing:1px;font-size:10px;font-style:normal;display:block}.rec-ach{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:0;list-style:none}.rec-ach li{border-top:1px solid var(--line);grid-template-columns:128px auto 1fr;align-items:baseline;gap:12px;padding:10px 14px;font-size:14px;display:grid}.rec-ach li:first-child{border-top:none}.rec-ach-date{font-variant-numeric:tabular-nums;color:var(--primary);font-size:13px;font-weight:500}.rec-ach small{color:var(--muted)}@media (width<=720px){.rec-headrow{display:none}.rec-row{grid-template-columns:repeat(5,1fr);gap:6px 4px;padding:12px}.rec-title{grid-column:1/4}.rec-date{text-align:right;grid-column:4/6;font-size:12px}.rec-cell{background:var(--paper);border-radius:8px;padding:5px 2px}.rec-cell i{white-space:nowrap;font-size:10px;font-weight:700;display:block}.rec-cell.easy i{color:var(--easy-ink)}.rec-cell.normal i{color:var(--normal-ink)}.rec-cell.hard i{color:var(--hard-ink)}.rec-cell.name i{color:var(--name-ink)}.rec-cell.blank i{color:var(--blank-ink)}.rec-ach li{grid-template-columns:1fr;gap:2px}.rec-headrow+.rec-row{border-top:none}}:root{--lv0:#e3e5e1;--lv1:#d3e6cc;--lv2:#a6cf98;--lv3:#62a16a;--lv4:#2d6a4f}.zoom-map .lm-country{stroke:#fff;stroke-width:.6px}.zoom-map .lm-country.lv0,.lm-legend i.lv0{fill:var(--lv0);background:var(--lv0)}.zoom-map .lm-country.lv1,.lm-legend i.lv1{fill:var(--lv1);background:var(--lv1)}.zoom-map .lm-country.lv2,.lm-legend i.lv2{fill:var(--lv2);background:var(--lv2)}.zoom-map .lm-country.lv3,.lm-legend i.lv3{fill:var(--lv3);background:var(--lv3)}.zoom-map .lm-country.lv4,.lm-legend i.lv4{fill:var(--lv4);background:var(--lv4)}.zoom-map .lm-country.an{fill:#eef0ed}.zoom-map .lm-country.on{stroke:#ffffffe6}.lm-legend{flex-wrap:wrap;align-items:center;gap:6px 14px;margin:4px 0 6px;font-size:13px;font-weight:500;display:flex}.lm-legend span{align-items:center;gap:5px;display:inline-flex}.lm-legend i{border-radius:4px;width:14px;height:14px;display:inline-block}.lm-legend-count{color:var(--muted);margin-left:auto}.zoom-map .lm-detail{display:none}.zoom-map.detail .lm-detail{display:inline}.zoom-map .lm-pref{stroke-width:.5px}.btn.pp-reset,.btn.pp-reset:hover,.btn.pp-reset:active{color:var(--hard-ink);box-shadow:none;background:0 0;border-color:#0000;transform:none}.btn.pp-reset{margin-top:1.5em}.howto-cover,.pp-cover{border-radius:0}.menu-btn,.menu-scrim,.menu-label{display:none}@media (width<=600px){.app-header{min-height:56px;padding-top:max(8px, env(safe-area-inset-top));padding-bottom:8px}.app-header .logo-img{height:30px;display:block}.app-header .logo-mark{display:none}.menu-btn{-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:44px;height:44px;margin-right:-8px;display:flex;position:relative}.menu-btn i{background:#fff;border-radius:2px;width:22px;height:2px;transition:transform .22s,opacity .15s;display:block}.menu-btn.open i:first-child{transform:translateY(7px)rotate(45deg)}.menu-btn.open i:nth-child(2){opacity:0}.menu-btn.open i:nth-child(3){transform:translateY(-7px)rotate(-45deg)}.menu-btn .sync-dot{border-color:#222426;width:9px;height:9px;top:8px;bottom:auto;right:6px}.menu-scrim{background:#00000059;height:100vh;animation:.2s ease-out ex-in;display:block;position:absolute;top:100%;left:0;right:0}.app-header nav{display:none}.app-header nav.open{background:#222426;border-top:1px solid #ffffff1a;flex-direction:column;align-items:stretch;gap:0;padding:4px 16px 18px;animation:.2s ease-out menu-in;display:flex;position:absolute;top:100%;left:0;right:0;box-shadow:0 12px 24px #00000040}@keyframes menu-in{0%{opacity:0;transform:translateY(-6px)}}.app-header nav.open .nav-btn,.app-header nav.open .nav-btn.active,.app-header nav.open .icon-btn,.app-header nav.open .avatar-btn{color:#ffffffd9;text-align:left;background:0 0;border:none;border-bottom:1px solid #ffffff1a;border-radius:0;align-items:center;gap:12px;width:100%;height:auto;padding:15px 4px;font-size:16px;font-weight:500;text-decoration:none;display:flex}.app-header nav.open .nav-btn.active{color:#fff;font-weight:700}.app-header nav.open .nav-btn.active:before{content:"";background:#7cc38f;border-radius:2px;width:4px;height:18px;margin-left:-4px}.app-header nav.open .menu-label{display:inline}.app-header nav.open .avatar-btn img,.app-header nav.open .avatar-btn>span:first-child{background:var(--primary);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;display:grid}.app-header nav.open .avatar-btn .sync-dot{border-color:#222426;order:3;margin-left:auto;position:static}.app-header nav.open .login-btn{margin-top:16px;padding:12px;font-size:16px}}.ex-layers-wrap{display:contents}.ex-sub-label,.ex-picks{display:none}@media (width<=600px){.crumbs{max-height:120px;transition:max-height .4s cubic-bezier(.33,1,.68,1),padding .4s cubic-bezier(.33,1,.68,1),opacity .25s;overflow:hidden}.crumbs.at-root{opacity:0;max-height:0;padding-top:0;padding-bottom:0}.ex-map.compact{height:auto;min-height:0}.ex-veil{transition:opacity .2s ease-out}.explorer.moving .ex-veil{opacity:0;transition:none}.explorer.moving .ex-map g[mask]{-webkit-mask:none;mask:none}.explorer.moving .ex-piece{transition:none}.ex-panel,.ex-panel.placed{z-index:3;border:none;border-radius:20px 20px 0 0;gap:12px;margin-top:-16px;padding:16px 16px 14px;position:relative;inset:auto;box-shadow:0 -4px 16px #1d34401a}.ex-title{font-size:22px}.ex-back{padding:0 8px 6px 0;font-size:36px}.ex-go{padding:11px 18px;font-size:15px;box-shadow:0 2px 8px #2d6a4f40}.ex-go:after{content:" →"}.ex-sub-label{color:var(--muted);letter-spacing:.04em;margin-bottom:7px;font-size:12px;font-weight:500;display:block}.ex-layers-wrap{grid-area:3/1/auto/-1;display:block}.ex-layers{background:0 0;border-radius:0;flex-wrap:wrap;gap:8px;padding:0;display:flex}.ex-layers button{border:1.5px solid var(--line);color:var(--ink);box-shadow:none;-webkit-tap-highlight-color:transparent;background:#fff;border-radius:999px;flex:none;align-items:baseline;gap:6px;padding:8px 16px;line-height:1.2;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.ex-layers button b{font-size:15px;display:inline}.ex-layers button small{color:var(--muted);font-size:12px}.ex-layers button.on{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:none}.ex-layers button.on:before{content:"✓";margin-right:-1px;font-size:13px;font-weight:700}.ex-layers button.on small{color:#ffffffd9}.ex-picks{grid-area:4/1/auto/-1;min-width:0;margin:2px -16px 0;display:block}.ex-picks .ex-sub-label{padding:0 16px}.ex-pick-row{scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding:0 16px 4px;display:flex;overflow-x:auto}.ex-pick-row::-webkit-scrollbar{display:none}.ex-pick{background:var(--soft);color:var(--ink);white-space:nowrap;-webkit-tap-highlight-color:transparent;border:none;border-radius:999px;flex:none;padding:7px 14px;font-size:14px;font-weight:500}.ex-pick:active{background:var(--primary-soft)}}.pp-more-link{display:none}@media (width<=600px){.pp-cover .pp-more-btn{display:none}.pp-more-link{width:fit-content;color:var(--primary);-webkit-tap-highlight-color:transparent;background:0 0;border:none;align-items:center;gap:4px;margin:10px 0 0 auto;padding:6px 0;font-size:13px;font-weight:500;display:flex}.pp-more-link:active{opacity:.6}.zoom-map.world{box-shadow:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--ocean);border-radius:0;margin-left:-16px;margin-right:-16px}.zoom-map.world .zm-ctl button{width:40px;height:40px;font-size:18px}.zoom-map.world .zm-label{font-size:15px}input:not([type=checkbox]):not([type=radio]):not([type=range]),textarea,select,.select select{font-size:16px}.auth-form,.auth-form label{grid-template-columns:minmax(0,1fr);min-width:0}.auth-form input:not([type=checkbox]){width:100%;min-width:0}.modal{overflow-x:hidden}}.pp-ico,.pp-head-sub,.pp-legend{display:none}@media (width<=600px){.pp-cover{color:var(--ink);box-shadow:none;background:0 0;border-radius:0;padding:12px 4px 0;display:block}.pp-cover h1{letter-spacing:.08em;margin:0;font-size:30px}.pp-stats{border-bottom:1px solid var(--line);opacity:1;grid-template-columns:repeat(3,1fr);gap:0;margin-top:20px;padding-bottom:18px;display:grid}.pp-stat{border-left:1px solid var(--line);grid-template-rows:auto auto;grid-template-columns:auto auto;justify-content:center;align-items:center;column-gap:0;padding:2px 4px;display:grid}.pp-stat:first-child{border-left:none;justify-content:start}.pp-ico{width:28px;height:28px;color:var(--ink);grid-row:1/3;margin-right:8px;display:block}.pp-num{white-space:nowrap;text-align:center;grid-area:1/2}.pp-stat b{font-size:26px;font-weight:700;line-height:1.1}.pp-stat .pp-of{color:var(--muted);margin-left:2px;font-size:13px;font-weight:500}.pp-stat .pp-lab{color:var(--muted);text-align:center;grid-area:2/2;margin-top:2px;font-size:12px}.pp-more-link{margin-top:12px}.pp-head-map{border-bottom:none;justify-content:flex-start;align-items:baseline;padding-bottom:0}.pp-head-sub{color:var(--muted);font-size:13px;display:inline}.zoom-map.world{border:1px solid var(--line);border-radius:16px;margin-left:0;margin-right:0}.pp-map-note{display:none}.pp-legend{margin-top:14px;display:block}.pp-legend p{color:var(--muted);margin:0 0 10px;font-size:14px}.pp-legend-scale{color:var(--muted);align-items:center;gap:10px;font-size:12px;display:flex}.pp-legend-end{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.pp-legend-end i{border-radius:50%;width:12px;height:12px}.pp-legend-bar{border-radius:999px;flex:1;height:10px;display:flex;overflow:hidden}.pp-legend-bar i{flex:1}.pp-legend i.lv0{background:var(--lv0)}.pp-legend i.lv1{background:var(--lv1)}.pp-legend i.lv2{background:var(--lv2)}.pp-legend i.lv3{background:var(--lv3)}.pp-legend i.lv4{background:var(--lv4)}.sheet .sheet-head{margin-bottom:12px}.sheet .diff-list{gap:6px;margin-bottom:10px}.sheet .diff-opt{border-radius:12px;grid-template-columns:1fr auto;gap:8px;padding:11px 16px}.sheet .diff-desc{display:none}.sheet .diff-label{font-size:16px}.sheet .diff-rec{font-size:15px}.sheet .toggle{margin:0 4px 12px}}.howto-kicker,.pp-kicker,.howto-toc,.howto-card-ico{display:none}@media (width>=601px){.howto-kicker,.pp-kicker{letter-spacing:.28em;color:var(--primary);opacity:1;margin:0 0 10px;font-size:13px;font-weight:500;display:block}.howto-cover,.pp-cover{color:var(--ink);box-shadow:none;background:0 0;border-radius:0;padding:0}.howto-cover h1,.pp-cover h1{letter-spacing:.04em;color:var(--ink);margin:0;font-size:clamp(34px,4.2vw,48px);font-weight:800;line-height:1.25}.howto{grid-template-columns:minmax(0,1fr);max-width:1040px;padding-top:40px;display:grid}.howto-body{min-width:0}.howto-head{border-bottom:1px solid var(--line);margin-bottom:8px;padding-bottom:28px}.howto-lead{color:var(--ink);letter-spacing:.03em;margin:18px 0 0;font-size:20px;line-height:1.7}.howto-section{margin:48px 0;scroll-margin-top:90px}.howto-section h2{letter-spacing:.04em;border-bottom:none;align-items:baseline;gap:18px;margin:0 0 14px;padding-bottom:0;font-size:26px;font-weight:800;display:flex}.howto-num{width:auto;height:auto;color:var(--primary);letter-spacing:.02em;font-variant-numeric:tabular-nums;background:0 0;border-radius:0;font-size:30px;font-weight:700;display:inline}.howto-section>p,.howto-steps,.howto-list{color:#3f5249;letter-spacing:.02em}.howto-cards{gap:18px;margin:18px 0 16px}.howto-cards li{background:var(--card);border:1px solid var(--line);box-shadow:none;border-radius:10px;align-items:center;gap:18px;padding:20px 22px;display:flex}.howto-card-ico{background:var(--primary-soft);width:64px;height:64px;color:var(--ink);border-radius:50%;flex:none;place-items:center;display:grid}.howto-card-ico svg{width:34px;height:34px}.howto-card-text{min-width:0}.howto-cards b{margin-bottom:4px;font-size:17px;font-weight:800}.howto-tag{padding:2px 10px;font-weight:700}.howto-diffs li,.howto-table{border:1px solid var(--line);box-shadow:none;border-radius:10px}.howto-table{border-collapse:separate;border-spacing:0}.howto-note{border-radius:10px}.howto-cta{margin-top:56px}.howto-cta .btn{letter-spacing:.08em;padding:16px 64px;font-size:17px;font-weight:700;box-shadow:0 6px 16px #2d6a4f38}.howto-cta .btn span{margin-left:8px}.pp-cover{border-bottom:1px solid var(--line);align-items:flex-end;padding:24px 0 26px}.pp-stats{color:var(--muted);opacity:1;gap:6px 28px;margin-top:16px;font-size:15px}.pp-stats b{color:var(--ink);margin-right:2px;font-size:24px;font-weight:700}.pp-more-btn{border:1.5px solid var(--primary);color:var(--primary);background:var(--card)}.pp-more-btn:hover{background:var(--primary);color:#fff}}@media (width>=960px){.howto{grid-template-columns:170px minmax(0,1fr);column-gap:44px}.howto-toc{border-left:1px solid var(--line);border-right:1px solid var(--line);align-self:start;padding:6px 12px 6px 18px;display:block;position:sticky;top:90px}.howto-toc-title{color:var(--muted);letter-spacing:.08em;margin:0 0 22px;font-size:13px}.howto-toc ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.howto-toc button{width:100%;font:inherit;text-align:left;color:var(--muted);letter-spacing:.04em;cursor:pointer;background:0 0;border:none;gap:14px;padding:8px 0;font-size:13px;line-height:1.5;display:flex;position:relative}.howto-toc button:hover{color:var(--ink)}.howto-toc button.active{color:var(--primary);font-weight:700}.howto-toc button.active:before{content:"";background:var(--primary);border-radius:2px;width:3px;position:absolute;top:4px;bottom:4px;left:-19px}.howto-toc-num{font-variant-numeric:tabular-nums;flex:none}}
