:root{--ink:#101018;--surface:#20202b;--line:#505362;--paper:#e4e0b7;--muted:#a0a4ad;--gold:#d0a144;--blue:#2763bb;--red:#aa2033;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;background:var(--ink);color:var(--paper);font-family:system-ui,sans-serif;letter-spacing:0}body{min-height:100svh}button,input,select{font:inherit}button{min-height:44px;cursor:pointer;border:1px solid #505362;background:#20202b;color:var(--paper);padding:10px 18px;box-shadow:none;text-transform:none;letter-spacing:.02em;border-radius:2px;transition:background .15s,border-color .15s}button:hover{background:#343441;border-color:var(--gold)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #ead174;outline-offset:4px}button:disabled{opacity:.45;cursor:default}.ghost{background:transparent;border-color:transparent;box-shadow:none}.primary{background:#d0a144;color:#101018;border-color:#d0a144}.eyebrow{font:11px/1.5 ui-monospace,monospace;letter-spacing:.19em;color:#d0a144}h1,h2,h3{font-family:Georgia,serif;text-shadow:none;letter-spacing:0}h2{font-size:30px}p{line-height:1.6}.hidden{display:none!important}
#app{max-width:none;margin:0;padding:0}.topbar{max-width:1360px;margin:auto;padding:20px 28px;border:0;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand h1{font-size:24px;color:var(--paper);margin:3px 0}.top-actions{display:flex;gap:4px;flex-wrap:nowrap}.top-actions button{padding:8px 12px;font-size:13px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:32px;max-width:1300px;margin:0 auto;padding:12px 32px 24px}.board-column{min-width:0}.board-frame{margin:0 auto;border:1px solid #737782;background:#20202b;box-shadow:0 16px 40px #0008;width:min(100%,720px);padding:18px;overflow:visible}.board-frame.dos-view{height:auto;aspect-ratio:auto;padding:30px 18px 18px;background:#20202b;border-color:#737782;box-shadow:0 16px 40px #0008}.dos-stage-label,.dos-horizon{display:none}.board,.board-frame.dos-view .board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;width:100%;height:auto;position:relative;inset:auto;transform:none;transform-origin:center;gap:0;overflow:visible}.square,.board-frame.dos-view .square{position:relative;min-height:0;aspect-ratio:1;padding:0;margin:0;border:0;border-radius:0;box-shadow:none;overflow:visible;background:#343441;transform:none}.square.light,.board-frame.dos-view .square.light{background:#858774}.square.dark,.board-frame.dos-view .square.dark{background:#343d4c}.square:hover{box-shadow:inset 0 0 0 2px #e4e0b799}.square.selected{box-shadow:inset 0 0 0 3px #ead174;background:#716647}.square.legal:after{content:'';position:absolute;width:15%;height:15%;left:42.5%;top:45%;border-radius:50%;background:#101018a0;pointer-events:none}.square.capture:after{content:'';position:absolute;inset:4px;border:3px solid #d34146;border-radius:50%;pointer-events:none}.coord{font:10px ui-monospace,monospace;color:#e4e0b7;z-index:100;pointer-events:none}.coord.file{bottom:2px;right:3px}.coord.rank{top:2px;left:3px}.board-frame.flat-view .piece{max-height:100%}.square .piece,.board-frame.dos-view .square .piece{width:95%;height:116%;position:absolute;left:2.5%;bottom:4%;transform:none;transform-origin:50% 95%;pointer-events:none;filter:drop-shadow(1px 2px 0 #10101888)}.square .piece.piece-P{width:95%;height:108%}.square .piece.pixel-piece img{width:100%;height:100%;object-fit:contain}.sprite{display:inline-block;overflow:hidden;aspect-ratio:112/128;position:relative}.sprite img{position:absolute;max-width:none!important;width:calc(var(--frames)*100%)!important;height:100%!important;left:calc(var(--frame)*-100%);top:0;image-rendering:pixelated;object-fit:fill!important;pointer-events:none}.status-row{max-width:720px;margin:16px auto 0;display:flex;gap:16px;align-items:center}.turn-badge{background:none;border:0;padding:0;color:var(--gold);font-size:15px;white-space:nowrap}.status-text{font:13px/1.5 system-ui;color:var(--muted)}.save-status{max-width:720px;margin:6px auto;color:#a0a4ad;font:11px/1.4 ui-monospace,monospace}.game-actions{display:flex;gap:6px;flex-wrap:wrap;max-width:720px;margin:18px auto 0}.game-actions button{font-size:12px;padding:8px 12px}.side-panel{display:flex;flex-direction:column;gap:24px;padding-top:16px;background:none;border:0;box-shadow:none}.panel-block{border:0;background:none;padding:0 0 20px;box-shadow:none;border-bottom:1px solid #343441}.panel-block h2{font-size:23px;line-height:1.2;color:var(--paper)}.panel-block p,.panel-block small{font-size:13px;line-height:1.55;color:var(--muted)}.panel-block select{width:100%;margin:8px 0}.move-log{max-height:240px;overflow:auto;font:14px/1.8 ui-monospace,monospace}input,select{color:var(--paper);background:#101018;border:1px solid #505362;min-height:44px;padding:10px;border-radius:2px;max-width:100%}
.overlay{display:none;position:fixed;inset:0;z-index:200;background:#080c11df;padding:24px;overflow:auto;align-items:center;justify-content:center;backdrop-filter:blur(3px)}.overlay.show{display:flex}.modal-card{position:relative;background:#20202b;border:1px solid #505362;padding:28px;width:min(100%,600px);max-height:calc(100svh - 48px);overflow:auto;box-shadow:0 24px 80px #0008;border-radius:3px}.modal-card.wide{width:min(100%,900px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.modal-head h2{margin:0}.modal-card p{color:var(--muted);font-size:14px}.rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.rule-grid article{background:none;border:0;padding:0;border-bottom:1px solid #505362}.rule-grid h3{font-size:21px}.rules-long h3{margin-top:26px}.mode-list{display:flex;flex-direction:column;gap:10px}.mode-list button{text-align:left;padding:18px}.mode-list b{font:21px Georgia,serif;display:block}.mode-list small{display:block;margin-top:6px;color:var(--muted);line-height:1.5}.save-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:0;border-bottom:1px solid #505362;background:transparent;padding:16px 0}.save-row small{display:block;margin-top:6px;color:var(--muted)}.save-list:empty{display:none}.inline-actions,.online-create-row,.manual-save-row,.join-row,.transfer-row{display:flex;gap:12px;margin:16px 0;flex-wrap:wrap}.join-row label,.transfer-row label{flex:1}.join-row input,.transfer-row input{display:block;width:100%;margin-top:8px}.academy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.academy-card{padding:18px;text-align:left;background:none;border:1px solid #505362}.academy-card small{display:block;line-height:1.5;color:var(--muted);margin-top:8px}.academy-card.completed{border-color:#96713b}.setting-row{display:grid;grid-template-columns:1fr minmax(120px,1fr);align-items:center;gap:18px;padding:12px 0;border-bottom:1px solid #343441}.setting-row input[type=range]{width:100%;padding:0;accent-color:var(--gold)}.setting-row input[type=checkbox]{justify-self:end;accent-color:var(--gold);width:22px;height:22px;min-height:22px}.setting-row select{width:100%}.lesson-banner,.training-banner,.online-banner{max-width:720px;margin:0 auto 18px;padding:16px;border:1px solid #505362;background:#20202b}.lesson-banner p,.training-banner p,.online-banner p{font-size:13px;margin:6px 0}
.title-screen{overflow:hidden;background:#101018;backdrop-filter:none;padding:0;justify-content:flex-start}.title-content{position:relative;z-index:3;margin-left:clamp(28px,9vw,170px);padding:50px 0;max-width:570px;animation:title-enter .5s ease-out both}.title-content h2{font-size:clamp(36px,5.2vw,76px);font-weight:normal;line-height:.95;margin:30px 0 20px;color:#e4e0b7;letter-spacing:.045em}.title-content h2 span{font-size:1.65em;letter-spacing:.08em;color:#d0a144}.title-line{color:#a0a4ad;font-size:15px;margin:0 0 28px}.title-menu{display:flex;flex-direction:column;width:270px;gap:3px}.title-menu button{text-align:left;border:0;background:transparent;border-bottom:1px solid #343441;padding:11px 0;font:18px Georgia,serif;min-height:43px}.title-menu .primary{background:#d0a144;color:#101018;padding:14px 18px;margin-bottom:7px}.title-menu .primary span{float:right}.title-menu button:hover{padding-left:12px;color:#ead174}.title-menu .primary:hover{color:#101018;background:#ead174;padding-left:20px}.title-footer{display:flex;align-items:center;gap:10px;margin-top:24px}.title-footer button{border:0;background:none;padding:0;min-height:44px;font-size:13px;color:#a0a4ad}.version{margin-left:20px;color:#737782;font:11px ui-monospace,monospace}.title-art{position:absolute;inset:0;background:radial-gradient(ellipse at 74% 60%,#343441,transparent 60%);pointer-events:none}.title-art:after{content:'';position:absolute;bottom:0;left:48%;right:0;height:24%;background:linear-gradient(0deg,#101018,transparent)}.title-art img{position:absolute;object-fit:contain;image-rendering:pixelated;width:430px;height:430px;bottom:15%;opacity:.82;filter:drop-shadow(12px 14px 0 #080c1166)}.title-guard{right:20%}.title-king{right:0%}.title-art:before{content:'';position:absolute;left:47%;right:0;bottom:13%;height:20%;background:repeating-conic-gradient(#343441 0% 25%,#20202b 0% 50%) 0/110px 110px;transform:perspective(500px) rotateX(50deg);opacity:.45}.loading-brand{font:40px/.95 Georgia,serif;letter-spacing:.08em;color:#e4e0b7}.loading-brand strong{font-size:1.6em;font-weight:normal;color:#d0a144}#loadingScreen{position:fixed;inset:0;z-index:1000;background:#101018;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.loading-track{width:220px;height:3px;background:#343441;margin:32px 0 12px}.loading-track span{display:block;height:100%;width:8%;background:#d0a144;transition:width .2s}#loadingStatus{font:13px ui-monospace,monospace;color:#a0a4ad}#loadingScreen.ready{opacity:0;pointer-events:none;transition:opacity .3s}
.battle-overlay{position:fixed;inset:0;z-index:400;background:#080c11eb;display:none;align-items:center;justify-content:center;padding:24px}.battle-overlay.show{display:flex}.battle-stage{width:min(100%,1050px);height:min(650px,90svh);position:relative;overflow:hidden;background:linear-gradient(#101018,#20202b 60%,#343441);border:1px solid #737782;box-shadow:0 20px 80px #000b}.battle-meta{position:absolute;top:20px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;z-index:5}.battle-meta #battleTechnique{font:24px Georgia,serif;color:#d0a144}.fighters{position:absolute;inset:70px 0 110px}.fighter{position:absolute;bottom:0;width:32%;height:100%;left:20%;display:flex;align-items:flex-end;justify-content:center;transform:translateX(-50%);filter:none}.fighter.victim{left:80%;right:auto;transform:translateX(-50%) scaleX(-1)}.fighter .piece,.fighter .pixel-piece{width:100%;height:auto;max-height:100%;position:relative;left:0;bottom:0;aspect-ratio:112/128;transform:none;filter:drop-shadow(2px 4px 0 #080c1180)}.fighter .pixel-piece img{width:100%;height:auto}.battle-floor{position:absolute;bottom:80px;left:0;right:0;height:26px;background:#505362;box-shadow:0 3px 0 #101018;z-index:-1}.battle-caption{position:absolute;bottom:24px;left:10%;right:10%;text-align:center;font:16px/1.5 Georgia,serif;color:#e4e0b7;background:none;border:0;min-height:48px}.battle-scanlines{display:none}.pixel-impact{position:absolute;top:45%;z-index:4;display:none;width:60px;height:60px;transform:translateX(-50%)}.pixel-impact.active{display:block;animation:impact .3s steps(4) both}.pixel-impact i{position:absolute;width:8px;height:8px;background:#ead174;left:26px;top:26px;box-shadow:-22px -14px #f0e6cf,20px -20px #d0a144,30px 15px #a46d3c,-30px 18px #e4e0b7}.fx-rune i,.fx-crystal i{background:#89b2d5;box-shadow:-20px -20px #5086cb,24px -12px #e4e0b7,12px 22px #89b2d5}.fx-stone i{background:#a0a4ad;box-shadow:-30px -10px #737782,20px -24px #ccd0d3,32px 17px #505362}.toast{z-index:800;background:#e4e0b7;color:#101018;border:0;border-radius:2px;box-shadow:0 10px 35px #0008;font:14px/1.4 system-ui;max-width:min(440px,90vw);padding:12px 20px}.promotion-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.promotion-grid button{padding:16px 8px}.promotion-grid span{font-size:40px;display:block}.crt:after{content:'';position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(transparent 0 3px,#0002 3px 4px);z-index:900;opacity:.25}@keyframes title-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes impact{from{opacity:1;transform:translateX(-50%) scale(.6)}to{opacity:0;transform:translateX(-50%) scale(1.6)}}
@media(max-width:1000px){.layout{grid-template-columns:minmax(0,1fr) 210px;padding:10px 20px;gap:20px}.title-art img{right:0;width:380px;height:380px;opacity:.48}.title-art .title-guard{right:16%}.title-content{margin-left:7vw}.topbar{padding:16px 20px}.top-actions #musicBtn,.top-actions #helpBtn,.top-actions #saveTopBtn{display:none}}
@media(max-width:680px){.topbar{padding:12px 16px;gap:8px}.brand h1{font-size:20px}.brand .eyebrow{font-size:8px}.top-actions button{font-size:12px;padding:8px}.layout{display:flex;flex-direction:column;padding:6px 12px 22px;gap:16px}.board-frame,.board-frame.dos-view{padding:24px 5px 5px;width:100%}.side-panel{display:none}.status-row{margin-top:12px;gap:12px}.status-text{font-size:12px}.game-actions{gap:6px;margin-top:14px}.game-actions button{font-size:12px;padding:8px 10px;flex:1 0 28%}.game-actions #onlineActionsBtn{flex-basis:45%}.coord{font-size:8px}.title-content{margin-left:8vw;padding:35px 0;width:84vw}.title-content h2{font-size:38px;margin-top:24px}.title-content h2 span{font-size:1.65em}.title-content .eyebrow{font-size:9px}.title-line{font-size:13px;margin-bottom:20px}.title-menu{width:210px}.title-menu button{font-size:17px;min-height:42px;padding:10px 0}.title-art img{right:-130px;bottom:24%;width:350px;height:350px;opacity:.18}.title-art .title-guard{display:none}.title-art:before{left:0;height:18%;bottom:0}.title-footer{margin-top:16px}.overlay{padding:12px}.modal-card{padding:20px;max-height:calc(100svh - 24px)}.modal-head h2{font-size:25px}.rule-grid,.academy-grid{grid-template-columns:repeat(2,1fr)}.academy-card{padding:12px}.save-row{align-items:flex-start;flex-direction:column}.battle-overlay{padding:8px}.battle-stage{height:min(570px,85svh)}.battle-meta{top:12px;left:12px;right:12px;flex-wrap:wrap}.battle-meta #battleTechnique{font-size:21px;order:3;width:100%;text-align:center}.fighter{width:45%}.fighters{inset:110px 0 120px}.battle-caption{font-size:14px;left:8%;right:8%}.setting-row{grid-template-columns:1fr 130px;font-size:14px}}
@media(max-height:600px) and (min-width:680px){.title-content{padding:20px 0}.title-content h2{font-size:36px;margin:14px 0}.title-menu{display:grid;grid-template-columns:1fr 1fr;width:460px;gap:6px 20px}.title-menu .primary{grid-column:1/-1}.title-line{margin-bottom:12px}.title-footer{margin-top:8px}.layout{grid-template-columns:minmax(0,1fr) 220px;max-width:1000px}.board-frame,.board-frame.dos-view{max-width:450px}.battle-stage{height:96svh}.fighters{inset:60px 0 80px}.battle-caption{bottom:10px;font-size:13px}.battle-meta{top:10px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition:none!important}}.reduced-motion *{animation-duration:.001ms!important;transition:none!important}
.battle-stage{width:min(100%,960px);height:min(660px,90svh);isolation:isolate;background:#101018}
.battle-stage:before{content:'';position:absolute;inset:70px 0 85px;background:url('assets/battle-hall.png') center bottom/cover no-repeat;image-rendering:pixelated;z-index:0}
.fighters{width:auto;height:auto;margin:0;inset:70px 0 110px;z-index:1}
.fighter{max-width:none}
.fighter .piece.sprite{width:var(--actor-width,320px)!important;height:var(--actor-height,320px)!important;aspect-ratio:1!important;flex:none;max-height:none;filter:none}
.battle-floor{display:none}
.battle-caption,.battle-meta{z-index:3}
@media(max-width:680px){.battle-stage{height:min(540px,85svh)}.fighters{inset:100px 0 105px}.battle-stage:before{inset:90px 0 85px}}
.square .piece.sprite,.board-frame.dos-view .square .piece.sprite,.board-frame.flat-view .square .piece.sprite{width:180%;height:auto;aspect-ratio:1;left:-40%;bottom:-8%;max-height:none;filter:none}
.square .piece.sprite{will-change:transform}
.board-frame.dos-view{padding-top:75px;background:#20202b;overflow:hidden}
.board-frame.dos-view .board{display:block;aspect-ratio:1.17;isolation:isolate;background:none;border:0;box-shadow:none}
.board-frame.dos-view .square{position:absolute;height:12.5%;aspect-ratio:auto;background:transparent;box-shadow:none}
.board-frame.dos-view .square.light,.board-frame.dos-view .square.dark{background:transparent}
.board-frame.dos-view .square:before{content:'';position:absolute;inset:0;background:#343d4c;clip-path:var(--tile-shape);border:0;z-index:-1}
.board-frame.dos-view .square.light:before{background:#858774}
.board-frame.dos-view .square.selected:before{background:#96713b}
.board-frame.dos-view .square:hover:before{filter:brightness(1.15)}
.board-frame.dos-view .square .piece.sprite{bottom:11%}
.board-frame.dos-view .square .coord.file{right:42%;bottom:3%}
.board-frame.dos-view .square .coord.rank{top:auto;bottom:18%;left:8%}
@media(max-width:680px){.board-frame.dos-view{padding:45px 12px 12px}}
.board-frame.flat-view{overflow:hidden;padding-top:60px}
@media(max-width:680px){.board-frame.flat-view{padding:38px 12px 12px}}
.pixel-impact.active{animation:none;pointer-events:none}
.pixel-impact i{width:calc(var(--pixel-unit)*3);height:calc(var(--pixel-unit)*3);left:42%;top:42%;box-shadow:calc(var(--pixel-unit)*-7) calc(var(--pixel-unit)*-5) #f0e6cf,calc(var(--pixel-unit)*7) calc(var(--pixel-unit)*-6) #d0a144,calc(var(--pixel-unit)*8) calc(var(--pixel-unit)*5) #a46d3c,calc(var(--pixel-unit)*-8) calc(var(--pixel-unit)*6) #e4e0b7}
.pixel-impact i:not(:first-child){display:none}
.battle-magic{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none;image-rendering:pixelated}
.opponent-choice{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:10px;margin:8px 0 20px}.opponent-choice small{grid-column:1/-1;color:#a0a4ad}
.board-frame{position:relative}.board-battle{display:none;position:absolute;inset:0;z-index:180;pointer-events:none;overflow:hidden}.board-battle.show{display:block;background:none}.board-duelist{position:absolute;width:0;height:0;transform-origin:0 0;will-change:left,top;pointer-events:none}.board-duelist .piece.sprite{position:absolute;width:var(--duel-size);height:var(--duel-size);max-height:none;aspect-ratio:1;filter:none;transform:none}.square.duel-masked>.sprite{visibility:hidden!important}.board-frame.is-battling .square{pointer-events:none}.square.duel-target:after{content:'';position:absolute;inset:3px;border:1px solid #ead174;border-radius:0;background:none;pointer-events:none}.board-battle-notice{display:flex;gap:12px;justify-content:space-between;align-items:center;max-width:720px;min-height:58px;margin:8px auto 0;padding:6px 0;border-bottom:1px solid #343441}.board-battle-notice[hidden]{display:none}.board-battle-notice strong{display:inline;font:16px Georgia,serif;color:#ead174}.board-battle-notice #battleMatchup{margin-left:12px;font:10px ui-monospace,monospace;color:#a0a4ad}.board-battle-notice #battleCaption{position:static;min-height:0;margin:5px 0;font:12px/1.4 system-ui;text-align:left;color:#ccd0d3}.board-battle-notice button{pointer-events:auto;flex:none}.board-battle .battle-magic{z-index:300;inset:0;width:100%;height:100%}.board-duelist .sprite img{image-rendering:pixelated}.board-reflection{opacity:.45;filter:sepia(1) hue-rotate(160deg)}
.square.duel-depth-source>.sprite{visibility:hidden!important}
.board-battle .board-witness{pointer-events:none}

/* Courtyard v1: scenery stays below the real board and battle layer. */
.board-frame.dos-view{
  background:radial-gradient(ellipse at 50% 44%,#424c43 0%,#262c31 62%,#171c24 100%);
  border:5px solid #4c4d4b;
  border-top-color:#77756c;
  border-right-color:#343740;
  border-bottom-color:#24272d;
  box-shadow:inset 0 0 0 2px #292c2b,0 9px 0 #17191f,0 22px 42px #0009;
  padding-top:clamp(75px,13%,102px);
}
.board-frame.dos-view::before{
  content:'';
  position:absolute;
  inset:0 0 auto;
  height:38%;
  background:url('assets/courtyard-back-wall-v1.png') center top/100% auto no-repeat;
  image-rendering:pixelated;
  pointer-events:none;
  z-index:0;
}
.board-frame.dos-view .board{z-index:1}
.board-frame.dos-view .board::before,
.board-frame.dos-view .board::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:
    repeating-linear-gradient(90deg,transparent 0 34px,#20282b55 34px 36px,transparent 36px 72px),
    repeating-linear-gradient(0deg,transparent 0 17px,#20282b66 17px 19px,transparent 19px 38px),
    linear-gradient(125deg,#454b46,#2a3031);
  opacity:.67;
}
.board-frame.dos-view .board::before{clip-path:polygon(0 0,14% 0,0 100%)}
.board-frame.dos-view .board::after{clip-path:polygon(86% 0,100% 0,100% 100%)}
.board-frame.dos-view .square:before,
.board-frame.dos-view .square.light:before,
.board-frame.dos-view .square.dark:before{
  background-color:#3f5840;
  background-image:linear-gradient(#354d3fc4,#354d3fc4),url('assets/courtyard-grass-v1.png');
  background-position:0 0,var(--grass-x) var(--grass-y);
  background-size:100% 100%,238px 238px;
  image-rendering:pixelated;
  animation:courtyard-grass-breeze 13s ease-in-out var(--grass-delay) infinite;
}
.board-frame.dos-view .square.light:before{background-image:linear-gradient(#a8b38baa,#a8b38baa),url('assets/courtyard-grass-v1.png')}
.board-frame.dos-view .square.selected:before{
  background-image:linear-gradient(#a17d3e99,#a17d3e99),url('assets/courtyard-grass-v1.png');
  background-size:100% 100%,238px 238px;
  background-position:0 0,var(--grass-x) var(--grass-y);
  animation:none;
}
.board-frame.dos-view .square:hover:before{filter:brightness(1.12)}
@keyframes courtyard-grass-breeze{
  0%,100%{background-position:0 0,var(--grass-x) var(--grass-y)}
  50%{background-position:0 0,calc(var(--grass-x) + 2px) calc(var(--grass-y) - 1px)}
}
.board-frame.dos-view.reduced-motion .square:before,
.board-frame.dos-view.reduced-motion .square.light:before,
.board-frame.dos-view.reduced-motion .square.dark:before,
.board-frame.dos-view.is-battling .square:before,
.board-frame.dos-view.is-battling .square.light:before,
.board-frame.dos-view.is-battling .square.dark:before{animation:none}
@media(prefers-reduced-motion:reduce){.board-frame.dos-view .square:before,.board-frame.dos-view .square.light:before,.board-frame.dos-view .square.dark:before{animation:none}}
@media(max-width:680px){.board-frame.dos-view{padding:50px 8px 10px;border-width:3px}.board-frame.dos-view .square:before,.board-frame.dos-view .square.light:before,.board-frame.dos-view .square.dark:before{background-size:100% 100%,178px 178px}}
