.games-hero{border-bottom:1px solid var(--line);padding:72px 0 46px}.games-hero h1{margin-bottom:18px}.games-hero>p:last-child{color:var(--muted);font-family:var(--sans);max-width:700px;margin:0;font-size:21px;line-height:1.45}.games-intro{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;padding:42px 0 36px;display:grid}.games-intro-single{grid-template-columns:1fr}.game-card{color:#f4f0e8;background:#22342f;padding:28px 32px;box-shadow:12px 12px #d8d4c7}.game-card-secondary{background:#315348}.game-card-top{justify-content:space-between;align-items:start;display:flex}.game-card .eyebrow{color:#e6ad8d}.game-card-top span{letter-spacing:.12em;font-size:13px}.game-card h2{margin:24px 0 16px;font-size:clamp(32px,4vw,48px)}.game-card>p{color:#d7e1d9;max-width:740px;font-size:16px;line-height:1.65}.game-status{border-top:1px solid #587067;align-items:center;gap:11px;margin:26px 0 16px;padding-top:16px;display:flex}.game-status i{background:#8fc5a8;border-radius:50%;width:9px;height:9px}.game-status span{color:#d7e1d9;font-size:14px}.game-card>a{color:#fff;text-underline-offset:4px;font-size:14px}.play-shell{width:min(1180px,100% - 72px);margin:0 auto;padding:24px 0 104px}.play-layout{grid-template-columns:minmax(520px,720px) minmax(240px,1fr);align-items:start;gap:42px;display:grid}.board-column{min-width:0}.board-frame{grid-template-rows:26px auto;grid-template-columns:28px minmax(0,1fr) 28px;width:100%;max-width:700px;margin:0 auto;display:grid}.file-labels{grid-area:1/2;grid-template-columns:repeat(9,1fr);display:grid}.file-labels span,.rank-labels span{color:var(--muted);font:13px var(--sans);justify-content:center;align-items:center;display:flex}.rank-labels{grid-area:2/3;grid-template-rows:repeat(9,1fr);display:grid}.shogi-board{aspect-ratio:1;background:#9e8860;border:2px solid #66573f;grid-area:2/2;grid-template-rows:repeat(9,1fr);grid-template-columns:repeat(9,1fr);width:100%;display:grid;box-shadow:14px 14px #d8d4c7}.board-square{color:#191c1a;cursor:pointer;touch-action:manipulation;background:#dec99f;border:1px solid #8e7955;border-top:0;border-left:0;justify-content:center;align-items:center;min-height:0;padding:2px;display:flex;position:relative}.board-square:nth-child(9n){border-right:0}.board-square:nth-last-child(-n+9){border-bottom:0}:is(.board-square:hover,.board-square:focus-visible){outline:3px solid var(--red);outline-offset:-3px;z-index:2;background:#e8d8b4}.board-square.is-last{box-shadow:inset 0 0 0 3px #b5463673}.board-square.is-selected{box-shadow:inset 0 0 0 4px var(--red);background:#f0ddae}.board-square.is-destination{background:#ead9ad}.board-square.is-destination i{background:#3153487a;border-radius:50%;width:18%;height:18%;position:absolute}.board-square.is-destination .board-piece{z-index:1}.board-piece{clip-path:polygon(50% 0,91% 30%,79% 100%,21% 100%,9% 30%);font-family:var(--piece-serif);background:#f1dda9;justify-content:center;align-items:center;width:74%;height:82%;font-size:clamp(20px,4.1vw,42px);line-height:1;display:flex}.board-piece.side-w{transform:rotate(180deg)}.piece-stand{border:1px solid var(--line);grid-template-columns:120px 1fr;align-items:center;gap:12px;max-width:700px;min-height:58px;margin:0 auto;padding:8px 12px;display:grid}.piece-stand.stand-w{margin-bottom:14px}.piece-stand.stand-b{margin-top:28px}.stand-label{color:var(--muted);letter-spacing:.06em;font-size:13px;font-weight:700}.piece-stand>div{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.piece-stand button,.hand-piece{color:var(--ink);font-family:var(--piece-serif);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;gap:2px;min-width:40px;min-height:40px;padding:2px 5px;font-size:26px;display:inline-flex;position:relative}.piece-stand button{cursor:pointer}:is(.piece-stand button:hover,.piece-stand button:focus-visible,.piece-stand button.is-selected){border-color:var(--red);outline:0}.hand-piece small,.piece-stand button small{font-family:Arial,sans-serif;font-size:11px}.empty-hand{color:var(--muted)}.turn-status{align-items:center;gap:10px;max-width:700px;min-height:28px;margin:22px auto 8px;font-size:15px;line-height:1.5;display:flex}.thinking-dot{background:var(--red);border-radius:50%;flex:none;width:9px;height:9px;animation:1s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.25;transform:scale(.75)}}.game-panel{border-top:3px solid var(--ink);position:sticky;top:20px}.game-controls{grid-template-columns:1fr 1fr;gap:8px;padding:14px 0;display:grid}.game-controls button,.promotion-dialog button,.button-like{background:var(--ink);border:1px solid var(--ink);color:var(--paper);cursor:pointer;min-height:44px;padding:10px 12px;font:14px Arial,sans-serif}.game-controls button:disabled,.search-settings:disabled,.text-button:disabled{cursor:not-allowed;opacity:.45}.move-list-wrap{border-bottom:1px solid var(--line);border-top:1px solid var(--line);padding:18px 0}.move-list-wrap h2{letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px;font:700 12px Arial,sans-serif}.move-list{gap:2px;max-height:290px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.move-list li button{color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:28px 1fr auto;align-items:center;width:100%;padding:8px;font-size:13px;display:grid}:is(.move-list li button:hover,.move-list li button:focus-visible,.move-list li.is-current button){background:#e2ded2;outline:0}.move-list strong{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.move-list small{color:var(--muted)}.search-settings{border:0;border-bottom:1px solid var(--line);gap:12px;margin:0;padding:18px 0;display:grid}.search-settings legend{padding:0;font-size:13px;font-weight:700}.search-settings label{color:var(--muted);justify-content:space-between;align-items:center;font-size:13px;display:flex}.search-settings select{border:1px solid var(--line);color:var(--ink);background:0 0;min-width:100px;padding:8px;font:14px Arial,sans-serif}.game-actions{align-items:center;gap:14px;margin-top:18px;display:flex}.button-like{flex:1}.text-button{color:var(--pine);cursor:pointer;text-underline-offset:4px;background:0 0;border:0;padding:6px 0;font-size:14px;text-decoration:underline}.text-button.danger{color:var(--red)}.storage-note{color:var(--muted);margin:18px 0 0;font-size:12px;line-height:1.55}.game-loading{border:1px solid var(--line);justify-content:center;align-items:center;gap:12px;min-height:320px;display:flex}.game-setup{border-top:3px solid var(--ink);max-width:580px;margin:0 auto;padding:24px 0}.game-setup h2{margin:0 0 10px;font-size:32px}.game-setup>p{color:var(--muted);margin:0;line-height:1.6}.game-setup .button-like{width:100%;margin-top:20px}.core-support{color:var(--muted);margin:0;font-size:12px;line-height:1.55}.promotion-backdrop{z-index:10;background:#14191694;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.promotion-dialog{background:var(--paper);width:100%;max-width:420px;padding:28px;box-shadow:14px 14px #00000040}.promotion-dialog h2{margin-bottom:24px;font-size:30px}.promotion-dialog>div{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tsume-shell{border-top:1px solid var(--line);width:min(1180px,100% - 72px);margin:0 auto;padding:56px 0 104px}.tsume-shell.is-page-content{border-top:0;padding-top:32px}.tsume-heading{max-width:640px}.tsume-heading h2{margin-bottom:16px}.tsume-heading>p:last-child{color:var(--muted);line-height:1.6}.tsume-setup{max-width:940px;margin:0 auto}.tsume-setup-heading{border-left:4px solid var(--red);margin-bottom:28px;padding:4px 0 4px 20px}.tsume-setup-heading h2{margin:4px 0 8px;font-size:clamp(30px,4vw,44px)}.tsume-setup-heading>p:last-child{color:var(--muted);margin:0;line-height:1.6}.tsume-setup-status{color:var(--muted);margin:0 0 22px}.tsume-levels{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.tsume-level{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#f8f4eb;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;min-height:152px;padding:22px;transition:background .16s,transform .16s;display:grid;box-shadow:7px 7px #d8d4c7}:is(.tsume-level:hover,.tsume-level:focus-visible){outline:3px solid var(--pine);outline-offset:2px;background:#eef2ec;transform:translate(-2px,-2px)}.tsume-level:disabled{cursor:wait;opacity:.55}.tsume-level-number{background:var(--pine);color:var(--paper);font:700 28px var(--sans);border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.tsume-level-copy{gap:6px;display:grid}.tsume-level-copy strong{font:700 25px var(--sans)}.tsume-level-copy small{color:var(--muted);font-size:13px;line-height:1.45}.tsume-level-copy em{color:var(--red);letter-spacing:.05em;font-size:12px;font-style:normal;font-weight:700}.tsume-level-arrow{color:var(--pine);font-size:22px}.tsume-toolbar{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:12px 20px;margin-bottom:26px;padding-bottom:16px;display:grid}.tsume-back{color:var(--pine);cursor:pointer;text-align:left;text-underline-offset:4px;background:0 0;border:0;padding:8px 0;font-size:14px;text-decoration:underline}.tsume-progress-copy{align-items:baseline;gap:12px;display:flex}.tsume-progress-copy strong{font:700 17px var(--sans)}.tsume-progress-copy span{font-weight:700}.tsume-progress-copy small{color:var(--muted)}.tsume-toolbar progress{-webkit-appearance:none;appearance:none;background:#ded9cc;border:0;grid-column:1/-1;width:100%;height:5px}.tsume-toolbar progress::-webkit-progress-bar{background:#ded9cc}.tsume-toolbar progress::-webkit-progress-value{background:var(--red)}.tsume-toolbar progress::-moz-progress-bar{background:var(--red)}.tsume-layout{grid-template-columns:minmax(320px,650px) minmax(260px,1fr);align-items:start;gap:46px;display:grid}.tsume-panel{border-top:4px solid var(--ink);background:#eee9dd;padding:22px;position:sticky;top:20px}.tsume-panel-heading{justify-content:space-between;align-items:center;display:flex}.tsume-panel-heading span{background:var(--pine);color:var(--paper);letter-spacing:.08em;padding:6px 9px;font-size:12px;font-weight:700}.tsume-panel-heading small{color:var(--muted);font-size:13px}.tsume-panel h2{margin:16px 0 8px;font-size:clamp(30px,4vw,42px)}.tsume-remaining{color:var(--muted);margin:0;font-size:13px}.tsume-status{border-bottom:1px solid var(--line);min-height:58px;margin:18px 0 0;padding-bottom:18px;line-height:1.65}.tsume-status.is-error{color:var(--red);font-weight:700}.tsume-status.is-success{color:var(--pine);font-weight:700}.tsume-solution{border-bottom:1px solid var(--line);padding:18px 0}.tsume-solution h3{letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;font:700 12px Arial,sans-serif}.tsume-solution ol{gap:6px;margin:0;padding:0;list-style:none;display:grid}.tsume-solution li{font-family:var(--sans);font-size:16px}.tsume-solution li.is-gote{color:var(--muted)}.tsume-actions{gap:10px;padding-top:18px;display:grid}.tsume-panel .button-like{width:100%}.tsume-answer-button{border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;width:100%;min-height:46px;padding:10px 12px;font:14px Arial,sans-serif}:is(.tsume-answer-button:hover,.tsume-answer-button:focus-visible){background:var(--ink);color:var(--paper);outline:0}.tsume-answer-button:disabled{cursor:not-allowed;opacity:.45}.tsume-panel .text-button{text-align:left;margin:0;display:block}.tsume-toast{display:none}@media (max-width:900px){.play-layout,.tsume-layout{grid-template-columns:1fr}.game-panel{grid-template-columns:1fr 1fr;gap:0;display:grid;position:static}.game-controls,.move-list-wrap,.search-settings,.game-actions,.storage-note{margin-left:18px;margin-right:18px}.move-list-wrap{grid-row:span 3}.storage-note{grid-column:1/-1}.game-actions{align-self:start}.shogi-board{box-shadow:10px 10px #d8d4c7}.tsume-panel{position:static}}@media (max-width:800px){.games-hero{padding:58px 0 38px}.tsume-page .games-hero{padding-bottom:28px}.games-hero>p:last-child{font-size:19px}.games-intro{grid-template-columns:1fr;padding:34px 0 28px;display:grid}.game-card{padding:24px;box-shadow:8px 8px #d8d4c7}.play-shell,.tsume-shell{width:min(100% - 30px,700px);padding-bottom:76px}.tsume-shell.is-page-content{padding-top:24px}.tsume-levels{grid-template-columns:1fr}.tsume-level{min-height:106px}.tsume-layout{gap:32px}.board-frame{grid-template-columns:20px minmax(0,1fr) 20px}.piece-stand{grid-template-columns:86px 1fr}.game-panel{display:block}.game-controls,.move-list-wrap,.search-settings,.game-actions,.storage-note{margin-left:0;margin-right:0}}@media (max-width:460px){.games-hero{padding-top:46px}.game-card h2{font-size:31px}.tsume-level{grid-template-columns:auto 1fr;min-height:94px;padding:16px;box-shadow:5px 5px #d8d4c7}.tsume-level-number{width:44px;height:44px;font-size:23px}.tsume-level-arrow{display:none}.tsume-toolbar{grid-template-columns:1fr}.tsume-progress-copy{justify-content:space-between}.tsume-progress-copy small{display:none}.tsume-panel{padding:18px}.tsume-toast{background:var(--ink);color:var(--paper);z-index:20;padding:12px 14px;font-size:13px;font-weight:700;line-height:1.5;display:block;position:fixed;bottom:14px;left:14px;right:14px;box-shadow:0 4px 18px #00000038}.tsume-toast.is-error{background:var(--red)}.tsume-toast.is-success{background:var(--pine)}.board-frame{grid-template-rows:20px auto;grid-template-columns:16px minmax(0,1fr) 16px}.file-labels span,.rank-labels span{font-size:10px}.board-piece{width:82%;height:86%;font-size:clamp(16px,8vw,30px)}.piece-stand{grid-template-columns:72px 1fr;padding:6px 8px}.stand-label{font-size:11px}.piece-stand button,.hand-piece{min-width:34px;min-height:34px;font-size:22px}.promotion-dialog{padding:22px}}.board-piece.is-promoted{position:relative;box-shadow:inset 0 0 0 2px #b54636}.board-piece.is-promoted:after{color:#8d3025;content:"成";background:#f1dda9;padding:1px;font:700 clamp(7px,1.2vw,11px)/1 Arial,sans-serif;position:absolute;top:22%;right:12%}.board-piece.image-piece{clip-path:none;background:0 0}.board-piece.image-piece:after{display:none}.piece-art{object-fit:contain;width:100%;height:100%;display:block}.hand-piece-art{object-fit:contain;width:38px;height:38px;display:block}.hand-piece-text.side-w{display:block;transform:rotate(180deg)}.board-square.is-wrong{box-shadow:inset 0 0 0 4px var(--red);background:#f1c6bc}.game-page-title{border-bottom:1px solid var(--line);padding:30px 0 18px}.game-page-title h1{margin:0;font-size:clamp(32px,4vw,48px)}.mobile-game-toolbar,.game-panel-mobile-header{display:none}.tsume-complete{background:var(--pine);color:#fff;align-items:center;gap:8px;margin:16px 0 0;padding:11px 14px;display:flex}.tsume-complete span{color:var(--pine);background:#fff;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:17px;font-weight:900;display:flex}.tsume-complete strong{font-family:var(--sans);font-size:20px}.shogi-board{background:#e5b86d;border-color:#664723;box-shadow:0 3px 8px #49301426}.board-square{background-color:#0000;background-image:repeating-linear-gradient(89deg,#ffffff0b 0 1px,#0000 1px 6px,#71451009 6px 7px,#0000 7px 13px);border-color:#75582e}.board-square:nth-child(31):after,.board-square:nth-child(34):after,.board-square:nth-child(58):after,.board-square:nth-child(61):after{content:"";pointer-events:none;z-index:1;background:#513819;border-radius:50%;width:6px;height:6px;position:absolute;top:-3px;left:-3px}.board-piece{width:86%;height:92%}.board-piece:not(.image-piece){color:#1f1a13;font-weight:700}.board-piece:not(.image-piece).is-promoted{color:#aa2523}.piece-art{filter:drop-shadow(0 2px 1px #442e2326)}.board-square.is-selected{background-color:#f9d880;box-shadow:inset 0 0 0 3px #9d381f}.board-square.is-destination{background-color:#f5cd85}.board-square.is-destination i{background:#325a46c4}.board-square.is-last{background-color:#f5d79a;box-shadow:inset 0 0 0 2px #a65c23}.board-square.is-last:before{content:"";z-index:3;background:#e86d40;border:1px solid #fff3dc;border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:5px;box-shadow:0 1px 2px #4e2f1d66}.board-square.is-wrong{box-shadow:inset 0 0 0 4px var(--red);background-color:#f1c6bc}.piece-stand{background:#efcf98;border-color:#b88a4c;min-height:54px}.stand-label{letter-spacing:0;align-items:center;gap:7px;display:flex}.side-badge{color:#fff;white-space:nowrap;background:#795230;border-radius:5px;padding:5px;font-size:12px}.piece-stand.is-active .side-badge{background:#315348}.piece-stand.is-active{box-shadow:inset 4px 0 #315348,inset -4px 0 #315348}.piece-stand>div{align-items:center}.stand-w .hand-piece{transform:none}.hand-piece small,.piece-stand button small{color:#362615;background:#fff9eb;border:1px solid #b88a4c;border-radius:4px;padding:1px 3px;font-size:13px;font-weight:700}.game-turn-strip{color:#664723;border-bottom:1px solid #c89d62;justify-content:space-between;align-items:center;gap:16px;width:100%;max-width:700px;margin:6px auto;padding:0 0 5px;font-size:14px;display:flex}.game-turn-strip strong{align-items:center;gap:7px;font-size:13px;display:flex}.turn-side{color:#fff8e9;white-space:nowrap;background:#664723;border-radius:999px;padding:2px 7px}.game-turn-strip>span{font-family:var(--sans);font-weight:700}.game-evaluator{font-family:var(--sans);white-space:nowrap;background:#f6ead8;border:1px solid #d9bd96;border-radius:999px;padding:3px 7px;font-size:11px}.turn-status{background:#fffaf0;border:2px solid #b88a4c;border-radius:12px;align-items:flex-start;width:100%;max-width:700px;padding:15px;font-size:16px;line-height:1.6}.turn-status>div{min-width:0}.turn-status p{color:#664723;margin:3px 0 0}.turn-status .castle-status{color:#315348;margin-top:5px;font-size:13px;font-weight:700}.castle-status>span+span:before{color:#8d7a60;content:" · ";font-weight:400}.turn-status .thinking-dot{margin-top:8px}.game-panel-mobile-header button,.mobile-game-toolbar button,.tsume-answer-button,.tsume-panel .button-like{touch-action:manipulation}.advanced-search{border:1px solid var(--line);border-radius:8px;padding:0 12px}.advanced-search summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:14px}.advanced-search>div{gap:12px;padding:4px 0 14px;display:grid}.setup-note,.settings-note,.kifu-export p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.setup-resume{min-height:44px;margin:8px auto 0;display:block}.game-actions{flex-wrap:wrap}.game-actions .button-like:disabled{cursor:not-allowed;opacity:.45}.kifu-export{border-top:1px solid var(--line);gap:8px;margin-top:18px;padding-top:18px;display:grid}.kifu-export button{width:100%}.play-shell[data-message-size=large] .turn-status{font-size:20px}@media (max-width:800px){.games-page{background:#f8e5c0;flex-direction:column;min-height:100dvh;display:flex;overflow:hidden auto}.games-page>.nav{color:#fff6e6;background:#493021;border:0;flex-wrap:nowrap;flex:none;align-items:center;gap:10px;width:100%;height:48px;min-height:48px;padding:6px 12px}.games-page>.nav .nav-links a,.games-page>.nav .language{color:#fff6e6}.games-page>.nav .language{border-color:#997553}.games-page .brand{letter-spacing:.08em;white-space:nowrap;gap:7px;font-size:14px}.games-page .mark{width:28px;height:32px;font-size:17px}.games-page .nav-links{flex:none;order:initial;justify-content:flex-end;gap:0;margin-left:auto}.games-page .nav-links a{white-space:nowrap;font-size:13px}.games-page .language{white-space:nowrap;padding:8px 9px;font-size:13px}.game-page-title,.games-page>.footer{display:none}.play-shell,.tsume-shell{height:auto;min-height:0;padding:6px 0 max(24px,env(safe-area-inset-bottom));flex:1 0 auto;width:calc(100% - 12px)}.play-shell.is-playing{padding-bottom:max(160px,calc(120px + env(safe-area-inset-bottom)))}.play-shell.is-loading,.play-shell.is-setup{justify-content:center;align-items:center;display:flex}.game-loading{width:100%;min-height:120px}.game-setup{border-top:0;width:100%;max-height:100%;padding:8px 6px}.game-setup h2{margin:0 0 8px;font-size:26px}.game-setup>p,.game-setup .core-support{display:none}.game-setup .search-settings{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 0}.game-setup .search-settings legend{grid-column:1/-1}.game-setup .search-settings label{align-items:stretch;gap:5px;display:grid}.game-setup .search-settings select{width:100%;min-width:0}.game-setup .button-like{margin-top:10px}.play-layout{grid-template-columns:1fr;gap:0;height:auto}.board-column{flex-direction:column;justify-content:flex-start;align-items:center;height:auto;min-height:0;padding-top:4px;display:flex}.play-shell.is-playing{--mobile-board-frame:min(calc(100vw - 12px),calc(100dvh - 276px))}.play-shell.is-playing .board-frame{max-width:none;width:var(--mobile-board-frame);flex:none}.games-page .board-frame{grid-template-rows:20px auto;grid-template-columns:0 minmax(0,1fr) 18px}.games-page .file-labels span,.games-page .rank-labels span{color:#513819;font:700 12px Arial,sans-serif}.games-page .board-piece{width:90%;height:94%}.play-shell.is-playing .piece-stand{min-height:40px;width:var(--mobile-board-frame);grid-template-columns:104px 1fr;gap:5px;padding:3px 6px}.play-shell.is-playing .piece-stand.stand-w{margin-bottom:2px}.play-shell.is-playing .piece-stand.stand-b{margin-top:6px}.play-shell.is-playing .stand-label{white-space:nowrap;font-size:11px}.play-shell.is-playing .piece-stand button,.play-shell.is-playing .hand-piece{min-width:30px;min-height:32px;padding:0 2px;font-size:24px}.play-shell.is-playing .hand-piece-art{width:30px;height:32px}.play-shell.is-playing .piece-stand>div{flex-wrap:nowrap;gap:2px;overflow-x:auto}.play-shell.is-playing .side-badge{padding:5px;font-size:11px}.game-turn-strip{width:var(--mobile-board-frame);margin:5px 0;font-size:15px}.play-shell.is-playing .turn-status{min-height:76px;width:var(--mobile-board-frame);flex:0 112px;margin:9px 0 0;padding:12px;font-size:16px;line-height:1.5;overflow:auto}.mobile-game-toolbar{width:var(--mobile-board-frame);flex:none;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:5px;display:grid}.mobile-game-toolbar button{color:#fff9ed;cursor:pointer;background:#5c5a55;border:1px solid #484641;border-radius:7px;min-height:44px;padding:4px;font:700 14px Arial,sans-serif;box-shadow:0 2px #302f2c40}.mobile-game-toolbar button:first-child{background:#493021;border-color:#493021}.mobile-game-toolbar button.danger{color:#ffd8d2}.mobile-game-toolbar button:disabled{box-shadow:none;opacity:.38}.game-panel{display:none}.game-panel.is-open{z-index:30;background:#fff8e9;border-top:0;padding:12px 18px 24px;display:block;position:fixed;inset:48px 0 0;overflow:auto}.game-panel-mobile-header{border-bottom:2px solid #b88a4c;justify-content:space-between;align-items:center;padding:2px 0 12px;font-size:20px;display:flex}.game-panel-mobile-header button{color:#493021;cursor:pointer;background:#f5e1ba;border:1px solid #a67942;border-radius:8px;min-height:44px;padding:6px 14px;font-size:15px}.game-panel.is-open .move-list{max-height:calc(100dvh - 220px)}.game-panel.is-open .storage-note{display:none}.game-panel.is-open .game-actions{grid-template-columns:1fr 1fr;display:grid}.game-panel.is-open .text-button.danger{border:1px solid var(--red);min-height:44px}.game-panel.is-open .search-settings{padding:20px 0}.game-panel.is-open[data-view=menu] .move-list-wrap,.game-panel.is-open[data-view=menu] .game-controls,.game-panel.is-open[data-view=history] .search-settings,.game-panel.is-open[data-view=history] .game-actions{display:none}.game-panel.is-open .move-list li button{min-height:44px;font-size:16px}.game-panel.is-open .move-list-wrap h2{display:none}.game-setup{overflow:auto}.game-setup .setup-note,.game-setup .core-support,.game-setup .advanced-search{grid-column:1/-1;display:block}.game-setup .core-support{margin:0;font-size:12px}.game-setup .advanced-search>div{grid-template-columns:repeat(2,minmax(0,1fr))}.game-panel.is-open .search-settings label{align-items:stretch;gap:6px;font-size:15px;display:grid}.game-panel.is-open .search-settings select{width:100%;min-height:44px}.game-panel.is-open .game-actions .text-button{border:1px solid #b88a4c;border-radius:7px;min-height:44px;text-decoration:none}.play-shell[data-message-size=large] .turn-status{flex-basis:126px;font-size:20px}.game-panel.is-open .kifu-export{margin-top:16px}.game-panel.is-open[data-view=history] .move-list{max-height:calc(100dvh - 340px)}.tsume-shell.is-page-content{padding-top:6px}.tsume-setup{align-content:center;max-width:none;height:100%;display:grid}.tsume-setup-heading{text-align:center;border:0;margin:0 0 16px;padding:0}.tsume-setup-heading .eyebrow,.tsume-setup-heading>p:last-child{display:none}.tsume-setup-heading h2{margin:0;font-size:26px}.tsume-setup-status{text-align:center}.tsume-levels{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tsume-level{box-shadow:none;text-align:center;flex-direction:column;justify-content:center;gap:6px;min-height:98px;padding:10px 4px;display:flex}.tsume-level-number{width:30px;height:30px;font-size:18px}.tsume-level-copy{gap:3px}.tsume-level-copy strong{font-size:16px}.tsume-level-copy small,.tsume-level-arrow{display:none}.tsume-level-copy em{letter-spacing:0;font-size:11px}.tsume-toolbar{flex:none;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 2px 4px;padding:0 0 5px}.tsume-back{border:1px solid var(--line);padding:6px 8px;font-size:12px;text-decoration:none}.tsume-progress-copy{justify-content:flex-end;gap:8px}.tsume-progress-copy strong{font-size:15px}.tsume-progress-copy small{display:none}.tsume-toolbar progress{height:3px}.tsume-layout{flex-direction:column;align-items:center;gap:10px;height:calc(100% - 43px);min-height:0;display:flex}.tsume-layout .board-frame{flex:none;width:min(100vw - 12px,100dvh - 290px);max-width:none}.tsume-panel{background:#fffaf0;border:2px solid #b88a4c;border-radius:12px;flex-direction:column;flex:0 auto;width:min(100vw - 12px,100dvh - 290px);min-height:0;max-height:100%;padding:12px;display:flex;position:static;overflow:auto}.tsume-panel-heading,.tsume-panel>h2,.tsume-remaining{display:none}.tsume-status{border:0;min-height:48px;margin:0;padding:0;font-size:16px;line-height:1.5;display:block}.tsume-solution{border:0;padding:6px 0}.tsume-solution h3{display:none}.tsume-solution ol{flex-wrap:wrap;gap:4px 12px;display:flex}.tsume-solution li{font-size:15px}.tsume-actions{grid-template-columns:1fr 1fr;gap:8px;padding:8px 0 0;display:grid}.tsume-answer-button,.tsume-panel .button-like{border-radius:7px;min-height:44px;padding:7px 10px;font-size:15px}.tsume-panel .text-button{color:#664723;text-align:center;border:1px solid #b88a4c;border-radius:7px;min-height:44px;padding:7px;font-size:14px;text-decoration:none}.tsume-panel.is-solved{gap:0;display:flex}.tsume-panel.is-solved .tsume-complete{color:var(--pine);background:0 0;margin:0;padding:0 0 6px}.tsume-panel.is-solved .tsume-complete span{background:var(--pine);color:#fff;width:24px;height:24px;font-size:14px}.tsume-panel.is-solved .tsume-complete strong{font-size:20px}.tsume-panel.is-solved .tsume-status{display:none}.tsume-panel.is-solved .tsume-actions{display:block}.tsume-panel.is-solved .tsume-actions button{width:100%}.tsume-toast{display:none}}@media (max-width:360px){.games-page>.nav{gap:7px}.games-page .brand>span:last-child{display:none}.mobile-game-toolbar button{font-size:12px}.play-shell.is-playing .piece-stand{grid-template-columns:90px 1fr}}.piece-set-picker{gap:8px;min-width:0;display:grid}.piece-set-preview{justify-content:flex-end;align-items:center;gap:8px;display:flex}.piece-set-preview img{object-fit:contain;width:43px;height:48px}.piece-guide-legend{color:var(--muted);font-size:12px;line-height:1.5}.tsume-setup>.piece-set-picker{border:1px solid var(--line);background:#f8f4eb;margin:0 0 24px;padding:14px}.tsume-setup .piece-set-picker label{justify-content:space-between;align-items:center;gap:12px;display:flex}.tsume-setup .piece-set-picker select{background:var(--paper);border:1px solid var(--line);color:var(--ink);max-width:72%;min-height:44px;padding:8px;font-size:16px}.tsume-setup .piece-set-preview{justify-content:center}@media (max-width:800px){.game-panel.is-open .piece-set-picker select{font-size:16px}.game-panel.is-open .piece-set-preview{justify-content:flex-start}.tsume-setup>.piece-set-picker{margin-bottom:16px;padding:12px}.piece-set-preview img{width:39px;height:44px}.play-shell.is-playing{--mobile-board-frame:min(calc(100vw - 12px),calc(100dvh - 306px))}.play-shell.is-playing .piece-stand button{min-width:44px;min-height:44px}}@media (max-width:800px) and (max-height:640px){.games-page{height:auto;min-height:100dvh;overflow:visible}.play-layout,.board-column{height:auto}.play-shell.is-playing{--mobile-board-frame:min(calc(100vw - 12px),360px)}.tsume-layout{height:auto}.tsume-layout .board-frame,.tsume-panel{width:min(100vw - 12px,360px)}.game-panel.is-open{bottom:0}}.live-evaluation{color:#315348;background:#fff8e9;border:1px solid #b88a4c;border-radius:6px;flex:none;justify-content:space-between;align-items:center;gap:8px;width:100%;max-width:700px;min-height:28px;margin:0 auto 6px;padding:4px 8px;font-size:12px;display:flex}.live-evaluation strong{font-size:13px}.analysis-selected{z-index:2;background:#fff8e9;border:1px solid #b88a4c;border-radius:6px;padding:10px;position:sticky;top:0}.analysis-missing-note{font-size:13px;line-height:1.5}.analysis-missing-note button{color:#493021;cursor:pointer;background:#fff8e9;border:1px solid #a67942;border-radius:6px;min-height:44px;padding:8px;font-size:14px}.evaluation-point .evaluation-unknown{fill:#fff8e9;stroke:#a34b24}@media (max-width:800px){.play-shell.is-playing:has(.live-evaluation){--mobile-board-frame:min(calc(100vw - 12px),calc(100dvh - 340px))}.live-evaluation{width:var(--mobile-board-frame)}.live-evaluation span{font-size:11px}.live-evaluation strong{font-size:12px}.play-layout:has(>.game-panel.is-open[data-view=analysis]) .board-column{justify-content:flex-start}.play-layout:has(>.game-panel.is-open[data-view=analysis]) .shogi-board{aspect-ratio:1;height:auto;min-height:0}}.record-panel-tabs{display:none}.analysis-selected{scroll-margin-top:64px}@media (max-width:800px){.game-panel.is-open[data-view=analysis] .game-panel-mobile-header{padding:2px 0 8px;font-size:18px}.game-panel.is-open[data-view=analysis] .game-panel-mobile-header button{white-space:nowrap;flex-shrink:0;height:44px;padding:6px 10px}.game-panel.is-open[data-view=analysis] .record-panel-tabs{margin:6px 0}.game-panel.is-open[data-view=analysis] .analysis-selected{margin:6px 0;font-size:13px}}.analysis-layout-control,.graph-scale-control{justify-content:space-between;align-items:center;gap:8px;margin:8px 0;font-size:13px;display:flex}.analysis-layout-control select,.graph-scale-control select,.shogi-dialog select{color:#493021;background:#fffdf7;border:1px solid #a67942;border-radius:5px;min-width:0;min-height:44px;padding:8px;font-size:16px}.analysis-layout-control{display:none}.review-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.review-tools button,.variation-banner button{color:#493021;cursor:pointer;background:#fff8e9;border:1px solid #a67942;border-radius:7px;min-height:44px;padding:8px}.review-tools button:disabled{opacity:.45;cursor:not-allowed}.variation-banner{background:#e1ead6;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0;padding:6px;font-size:12px;display:flex}.storage-notice{color:#912921;white-space:normal;font-size:13px;line-height:1.5}.promotion-dialog .decline-first{flex-direction:row-reverse}.library-list{gap:10px;padding:0;list-style:none;display:grid}.library-list li{border:1px solid #b88a4c;border-radius:7px;align-items:stretch;display:flex;overflow:hidden}.library-open{color:#493021;cursor:pointer;text-align:left;background:#fffdf7;border:0;flex:1;gap:5px;min-width:0;padding:12px;display:grid}.library-open strong{overflow-wrap:anywhere;font-size:16px}.library-open time,.library-open small{font-size:12px}.library-open span{font-size:13px}.library-star{color:#493021;cursor:pointer;background:#f5e1ba;border:0;border-left:1px solid #b88a4c;min-width:44px;font-size:24px}.shogi-dialog .library-favorites{align-items:center;gap:8px;display:flex}.shogi-dialog .library-favorites input{width:24px;min-height:24px}.board-frame.can-swipe .board-square{touch-action:pan-y}.analysis-ply-selector{align-items:center;gap:10px;margin:6px 0;font-size:13px;display:flex}.analysis-ply-selector input{accent-color:#315348;flex:1;min-width:0;min-height:44px}.evaluation-point.is-limited>.evaluation-unknown{fill:#fff8e9}@media (max-width:800px){.play-layout:has(>.game-panel.is-open[data-view=analysis]){flex-direction:column;display:flex}.play-layout:has(>.game-panel.is-open[data-view=analysis]) .board-column{--mobile-board-frame:min(calc(100vw - 12px),calc(40dvh - 130px));flex:none;width:100%;height:auto}.play-layout:has(>.game-panel.is-open[data-view=analysis]) .board-column .turn-status{display:none}.play-layout:has(>.game-panel.is-open[data-view=analysis]) .mobile-game-toolbar{display:none}.game-panel.is-open[data-view=analysis]{z-index:auto;flex:1;width:100%;min-height:0;position:static;inset:auto;overflow:visible}.play-shell[data-analysis-layout=board] .play-layout:has(>.game-panel.is-open[data-view=analysis]) .board-column{--mobile-board-frame:min(calc(100vw - 12px),max(180px,calc(65dvh - 150px)))}.play-layout:has(>.game-panel.is-open[data-view=analysis]) .board-column .variation-banner{display:none}}.record-analysis{border-top:2px solid #b88a4c;min-width:0;margin-top:24px;padding-top:16px}.record-analysis h2{margin:0 0 12px;font-size:22px}.analysis-note{color:#664723;margin:8px 0;font-size:13px;line-height:1.6}.analysis-settings,.analysis-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.analysis-settings label{gap:6px;font-size:13px;display:grid}.analysis-settings select{color:#493021;background:#fffdf7;border:1px solid #a67942;width:100%;min-width:0;min-height:44px;padding:8px;font-size:16px}.analysis-options summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:13px}.analysis-actions button,.record-panel-tabs button{color:#493021;cursor:pointer;background:#fff8e9;border:1px solid #a67942;border-radius:7px;min-height:44px;padding:8px;font-size:14px}.analysis-actions button:first-child{color:#fff;background:#315348}.analysis-actions button:disabled{opacity:.45;cursor:not-allowed}.analysis-progress,.analysis-selected{margin:12px 0;font-size:14px;font-weight:700}.analysis-notice{color:#912921;font-size:13px;line-height:1.6}.evaluation-chart{background:#fffcf5;border:1px solid #b88a4c;border-radius:8px;width:100%;display:block;overflow:visible}.evaluation-chart text{fill:#664723;font:12px Arial,sans-serif}.evaluation-grid{stroke:#eadfcf;stroke-width:1px}.evaluation-zero{stroke:#bca68a;stroke-dasharray:4 4}.evaluation-line{fill:none;stroke:#315348;stroke-width:3px}.evaluation-cursor{stroke:#a34b24;stroke-width:1px;stroke-dasharray:3 3}.evaluation-chart .evaluation-line-note{fill:#7b6a55;font-size:13px}.evaluation-point{cursor:pointer;fill:#315348;stroke:#315348;stroke-width:2px}.evaluation-point.is-limited>circle:not(.evaluation-hit){fill:#fffdf7}.evaluation-point .evaluation-hit{fill:#0000;stroke:none}.evaluation-point:focus{outline:none}.evaluation-point:focus>circle:not(.evaluation-unknown),.evaluation-point[aria-pressed=true]>circle:not(.evaluation-unknown){fill:#fffcf5;stroke:#a34b24;stroke-width:3px}.evaluation-point[aria-disabled=true]{cursor:default}.analysis-table summary{cursor:pointer;min-height:44px;padding:12px 0;font-size:14px}.analysis-table ol{max-height:260px;margin:0;padding:0;list-style:none;overflow:auto}.analysis-table button{color:#493021;cursor:pointer;text-align:left;background:#fffdf7;border:1px solid #cbb18b;gap:5px;width:100%;min-height:54px;padding:8px;display:grid}.analysis-table button[aria-current=step]{background:#e1ead6}.analysis-table strong{font-size:13px}.analysis-table small{font-size:11px}@media (max-width:800px){.game-panel.is-open[data-view=history] .record-panel-tabs,.game-panel.is-open[data-view=analysis] .record-panel-tabs{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0;display:grid}.record-panel-tabs button[aria-pressed=true]{color:#fff;background:#315348}.game-panel.is-open[data-view=history] .record-analysis,.game-panel.is-open[data-view=menu] .record-analysis,.game-panel.is-open[data-view=analysis]>:not(.game-panel-mobile-header):not(.record-panel-tabs):not(.record-analysis){display:none}.game-panel.is-open[data-view=analysis] .record-analysis{border-top:0;margin-top:0;padding-top:8px}.game-panel.is-open[data-view=analysis] .record-analysis h2{display:none}.record-analysis{scroll-margin-top:20px}.game-panel.is-open[data-view=analysis]>.analysis-layout-control{display:flex!important}.play-layout:has(>.game-panel.is-open[data-view=analysis]) .game-panel-mobile-header{z-index:2;background:#fff8e9;position:sticky;top:0}.play-shell:has(.variation-banner){--mobile-board-frame:min(calc(100vw - 12px),calc(100dvh - 430px))}.variation-banner{width:var(--mobile-board-frame)}.game-panel.is-open[data-view=history] .review-tools{display:grid}}.shogi-board.is-flipped{transform:rotate(180deg)}.piece-stand.stand-top{margin:0 auto 14px}.piece-stand.stand-bottom{margin:28px auto 0}.board-square.is-hint-source,.piece-stand button.is-hint-source{background-color:#d9e9c5;box-shadow:inset 0 0 0 3px #245743}.board-square.is-hint-destination{outline-offset:-6px;background-color:#e9f0bc;outline:2px dashed #245743;box-shadow:inset 0 0 0 3px #245743}.hint-copy strong{color:#245743}.hint-copy small{margin-top:4px;font-size:12px;line-height:1.5;display:block}.record-comment{white-space:pre-wrap;font-size:14px}.move-comment{color:var(--muted);white-space:pre-wrap;margin:2px 8px 10px 36px;font-size:12px;line-height:1.5}.replay-controls{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.replay-controls button{padding:8px 3px;font-size:12px}.replay-speed{justify-content:space-between;align-items:center;gap:8px;padding-bottom:14px;font-size:13px;display:flex}.replay-speed select{background:var(--paper);border:1px solid var(--line);color:var(--ink);min-height:44px;padding:8px;font-size:14px}.board-frame{--board-file-label-height:26px;--board-rank-label-width:28px;position:relative}.rank-labels{bottom:0;right:0;top:var(--board-file-label-height);width:var(--board-rank-label-width);grid-area:auto;grid-template-rows:repeat(9,minmax(0,1fr));padding-block:2px;position:absolute}.rank-labels span{min-height:0}.shogi-board{grid-template-rows:repeat(9,minmax(0,1fr))}.stand-label{min-width:0}.side-badge{flex-shrink:0}.stand-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}@media (max-width:800px){.board-frame{--board-rank-label-width:20px}.games-page .board-frame{--board-file-label-height:20px;--board-rank-label-width:18px}.play-shell.is-playing .piece-stand{grid-template-columns:minmax(0,112px) minmax(44px,1fr)}.play-shell.is-playing .piece-stand>div{justify-content:safe flex-end;min-width:0}.play-shell.is-playing .piece-stand button,.play-shell.is-playing .hand-piece{flex:none}.play-shell[data-analysis-layout=graph] .play-layout:has(>.game-panel.is-open[data-view=analysis]) .board-column{--mobile-board-frame:min(calc(100vw - 12px),max(180px,calc(40dvh - 130px)))}.game-panel.is-open[data-view=analysis] .analysis-selected{position:static}.game-panel.is-open[data-view=analysis] .game-panel-mobile-header{z-index:3;box-shadow:0 -12px #fff8e9}.play-layout:has(>.game-panel.is-open[data-view=analysis]) .return-to-live{display:none}}@media (max-width:460px){.board-frame{--board-file-label-height:20px;--board-rank-label-width:16px}}.practice-tools,.kifu-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 0;display:grid}.practice-tools button,.kifu-actions button,.tsume-list-button,.tsume-resume{color:#493021;cursor:pointer;background:#fff8e9;border:1px solid #a67942;border-radius:7px;min-height:44px;padding:8px;font-size:14px}.practice-tools button[aria-pressed=true]{color:#fff;background:#315348}.practice-tools button:disabled,.kifu-actions button:disabled{cursor:not-allowed;opacity:.45}.kifu-actions{padding:0}.shogi-dialog{color:var(--ink);background:#fff8e9;border:2px solid #b88a4c;border-radius:12px;width:640px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 48px);padding:20px;overflow:auto}.shogi-dialog::backdrop{background:#21190fcc}.shogi-dialog>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;display:flex}.shogi-dialog h2{margin:0;font-size:23px}.shogi-dialog>header button{color:var(--ink);cursor:pointer;background:0 0;border:1px solid #a67942;border-radius:7px;flex-shrink:0;min-height:44px;padding:8px}.shogi-dialog p{font-size:14px;line-height:1.6}.shogi-dialog label{gap:8px;margin:16px 0;font-size:14px;display:grid}.shogi-dialog input,.shogi-dialog textarea{border:1px solid var(--line);color:var(--ink);background:#fffdf7;border-radius:5px;width:100%;min-height:44px;padding:10px;font-size:16px}.shogi-dialog textarea{resize:vertical}.shogi-dialog>.button-like{width:100%}.shogi-dialog .kifu-import-note{color:var(--muted);font-size:12px}.shogi-dialog .import-error{color:var(--red);font-weight:700}.tsume-resume{margin-bottom:16px}.tsume-progress-note{color:var(--muted);margin:18px 0 0;font-size:12px;line-height:1.5}.tsume-toolbar{grid-template-columns:auto auto 1fr}.tsume-progress-copy{justify-content:flex-end}.tsume-puzzle-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.tsume-puzzle-list button{color:var(--ink);cursor:pointer;background:#fffdf7;border:1px solid #b88a4c;border-radius:7px;justify-content:space-between;align-items:center;min-height:54px;padding:12px;display:flex}.tsume-puzzle-list button[aria-current=true]{border:2px solid #315348}.tsume-puzzle-list span{color:#315348;font-weight:700}@media (max-width:800px){.play-shell.is-playing .piece-stand.stand-top{margin:0 auto 2px}.play-shell.is-playing .piece-stand.stand-bottom{margin:6px auto 0}.game-panel.is-open[data-view=menu] .replay-speed,.game-panel.is-open[data-view=history] .practice-tools{display:none}.game-panel.is-open .replay-controls{display:grid}.game-panel.is-open[data-view=menu] .replay-controls{display:none}.replay-speed{font-size:14px}.replay-speed select{max-width:65%;font-size:16px}.tsume-toolbar{grid-template-columns:auto auto 1fr;gap:4px 8px}.tsume-back,.tsume-list-button{min-height:44px;padding:6px 8px;font-size:12px}.tsume-layout{height:calc(100% - 55px)}.tsume-setup{overflow:auto}.tsume-progress-note{text-align:center;margin:10px 0 0}.shogi-dialog{padding:14px}.shogi-dialog h2{font-size:20px}.replay-stop{background:#fff8e9;border:1px solid #a67942;border-radius:7px;min-height:44px;padding:8px 16px;text-decoration:none}}
