*{box-sizing:border-box} :root{color-scheme:light;font-family:"Hiragino Maru Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:#665345;background:#f5eddd;--ink:#665345;--sage:#788b73;--wood:#ad8861;--board: min(330px,calc(100vw - 160px),calc((100svh - 205px)/2))}
body{margin:0;background:radial-gradient(ellipse at 15% 12%,#fff9ed 0,transparent 40%),radial-gradient(ellipse at 88% 88%,#e5e6ce 0,transparent 45%),#f5eddd;min-height:100vh}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:radial-gradient(#947452 .6px,transparent .8px);background-size:8px 8px}
button{font:inherit;color:inherit;cursor:pointer} button:focus-visible,canvas:focus-visible,summary:focus-visible{outline:3px solid #709a91;outline-offset:4px}
.cafe-shell{position:relative;max-width:1000px;margin:auto;padding:24px 40px 16px}.title-band{display:flex;align-items:center;justify-content:space-between;padding:0 0 21px;border-bottom:1px solid #d6c9b4;gap:20px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#8d8c73;margin:0 0 9px}h1{font-family:Georgia,"Times New Roman",serif;font-size:49px;letter-spacing:3px;margin:0;line-height:1.12;color:#6a5341;font-weight:700}h1 span{display:inline-block;color:#798c76;border-left:1px solid #b4b9a0;padding-left:15px;margin-left:4px}h1 i{font-size:19px;color:#b89a63;vertical-align:top;margin-left:7px}.tagline{letter-spacing:3px;font-size:12px;margin:10px 0 0}.header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end;max-width:300px}.button{border:1px solid #d8c7ae;border-radius:10px;background:#fffbf2;padding:10px 12px;font-size:12px;box-shadow:0 3px 0 #d7c7ad;transition:background .15s,transform .1s;touch-action:manipulation}.button:hover{background:#fff}.button:active,.button.is-pressed{transform:translateY(2px);box-shadow:0 1px 0 #d7c7ad}.button.primary{background:#7c8d74;color:#fffbed;border-color:#6d8067;box-shadow:0 3px 0 #5e7158}.quiet{font-size:11px}.game-layout{display:grid;grid-template-columns:158px var(--board) 158px;justify-content:center;align-items:start;gap:25px;margin:23px auto 19px}.left-panel,.right-panel{display:flex;flex-direction:column;gap:18px;padding-top:27px}.card{background:#fffcf4;border:1px solid #dfd2ba;border-radius:15px;box-shadow:0 5px 14px #7d623b0a;overflow:hidden}.preview-card{width:100%;padding:15px 6px 12px;display:block}.card-heading{font-family:Georgia,serif;display:block;font-weight:700;letter-spacing:2px;font-size:16px;text-align:center;margin:0;color:#7b755f}.card-heading small{display:block;font-family:inherit;letter-spacing:1px;font-size:10px;font-weight:400;margin-top:5px;color:#9b8c75}.hold-card canvas,.next-card canvas{display:block;width:100%;height:auto}.hint{font-size:10px;color:#9e8e77;display:block;text-align:center}.hold-used{opacity:.55}.hold-card:disabled{cursor:default}.mascot-card{text-align:center;padding:15px 10px}.mascot-card .eyebrow{font-size:8px;letter-spacing:1.5px}.floating-mascot{border:0;background:none;padding:0;width:120px;max-width:100%;touch-action:manipulation}.floating-mascot img{width:100%;height:auto;display:block}.speech-bubble{border:1px solid #e4d5b9;border-radius:9px;background:#f8f1dd;font-size:10px;line-height:1.7;margin:7px 0 0;padding:8px 3px;min-height:34px}.cafe-note{text-align:center;color:#a0927c;font-size:11px;line-height:2;letter-spacing:1px}.cafe-note>span{font-size:27px}.board-label{display:flex;align-items:center;justify-content:center;gap:20px;font-size:11px;letter-spacing:2px;height:27px;color:#96866a}.board-label span{color:#bc9d61}.board-frame{position:relative;padding:9px;background:linear-gradient(120deg,#bb9b75,#9c7856);border:1px solid #94714f;border-radius:13px;box-shadow:0 7px 0 #806649,0 13px 22px #604b3a26}.board-frame:after{content:"";position:absolute;inset:4px;border:1px solid #e2cba250;border-radius:9px;pointer-events:none}#tetrisCanvas{width:100%;height:auto;aspect-ratio:1/2;display:block;border-radius:5px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline-offset:1px}.board-caption{font-size:9px;text-align:center;white-space:nowrap;color:#96866f;margin:15px 0 0}.awake-dot,.sleep-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#cd9c61;margin:0 3px 1px 5px}.sleep-dot{background:#7f937a}.next-card{padding:16px 6px 9px}.stats-card{padding:17px 16px}.stats-card .eyebrow{font-size:9px;letter-spacing:1.7px}.score-stat{border-bottom:1px dashed #e0d3bc;padding:5px 0 13px;margin-bottom:7px}.score-stat span{font-size:9px;letter-spacing:2px;color:#a3937d;display:block}.score-stat strong{font-family:Georgia,serif;font-size:31px;color:#7c8d74;display:block;overflow-wrap:anywhere}.stat{display:flex;justify-content:space-between;font-size:11px;align-items:center;padding:7px 0}.stat strong{font-family:Georgia,serif;font-size:21px}.game-overlay{position:absolute;inset:9px;z-index:2;background:#fff8e9f2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:12px;border-radius:5px}.hidden{display:none!important}.overlay-symbol{font-size:42px}.game-overlay h2{font-size:19px}.game-overlay p{font-size:11px;line-height:1.8}.final-stats{margin:5px 0 20px}.final-stats strong{margin-left:12px;font-size:22px}.instructions{max-width:700px;margin:12px auto 0;border-top:1px solid #d6c9b4;border-bottom:1px solid #d6c9b4;padding:12px 3px;font-size:12px}.instructions summary{cursor:pointer;color:#7d715e;letter-spacing:1px}.instructions summary span{float:right;font-size:10px;color:#a18f72}.guide{font-size:11px;line-height:2}.guide b{color:#778970}kbd{border:1px solid #deceb4;border-radius:3px;background:#fffaec;padding:1px 4px;font-size:10px}footer{text-align:center;color:#a4947f;font-size:9px;letter-spacing:.5px;margin:15px 0 0}footer span{font-family:Georgia,serif;margin-right:12px;letter-spacing:1px}
@media(min-width:768px){:root{--board:min(330px,calc((100svh - 260px)/2 + 18px))}}
@media(max-width:767px){.cafe-shell{padding:14px 12px 12px}.title-band{padding-bottom:12px;gap:8px}h1{font-size:29px;letter-spacing:1.5px}h1 span{padding-left:8px;margin-left:1px}h1 i{font-size:12px;margin-left:3px}.brand .eyebrow{font-size:6px;letter-spacing:1px;margin-bottom:6px}.tagline{font-size:9px;letter-spacing:1px;margin-top:6px}.header-actions{gap:6px;max-width:135px}.header-actions .button{font-size:10px;padding:9px 7px}.header-actions .quiet{width:100%;box-shadow:none;background:transparent;border-color:transparent;padding:2px}.game-layout{grid-template-columns:var(--board) 100px;gap:12px;margin:13px auto 16px}.play-column{grid-column:1;grid-row:1 / span 2}.left-panel{grid-column:2;grid-row:1;padding-top:27px;gap:10px}.right-panel{grid-column:2;grid-row:2;padding:0;gap:10px;margin-top:-4px}.left-panel .mascot-card{display:none}.cafe-note{display:none}.hold-card{padding:11px 4px 9px}.card{border-radius:11px}.card-heading{font-size:13px}.card-heading small{font-size:8px;margin-top:3px}.hint{font-size:8px}.pc-hint{display:none}.next-card{padding:11px 4px 4px}.stats-card{padding:12px 11px}.stats-card .eyebrow{font-size:7px;letter-spacing:1px}.score-stat strong{font-size:24px}.stat{padding:3px 0;font-size:9px}.stat strong{font-size:18px}.board-frame{padding:6px;border-radius:9px;box-shadow:0 5px 0 #806649,0 9px 16px #604b3a20}.board-label{font-size:9px;gap:10px;letter-spacing:1px}.board-caption{font-size:7px;margin-top:12px;letter-spacing:-.4px}.game-overlay{inset:6px;padding:8px}.game-overlay h2{font-size:15px}.game-overlay p{font-size:9px}.game-overlay .button{font-size:10px;padding:10px 7px}.instructions{margin-top:8px;font-size:11px}footer{font-size:8px;line-height:1.8}.overlay-symbol{font-size:30px}}
@media(max-width:359px){:root{--board:min(calc(100vw - 130px),calc((100svh - 185px)/2))}.cafe-shell{padding:10px 9px}.game-layout{grid-template-columns:var(--board) 86px;gap:9px}.header-actions{max-width:117px}h1{font-size:25px}.header-actions .button{font-size:9px;padding:8px 5px}.brand .eyebrow{font-size:5px}.tagline{font-size:8px}.stats-card{padding:9px}.board-caption{font-size:6px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.mobile-friend{display:none}
@media(max-width:767px){
 .title-band{display:block;text-align:center}.brand h1{white-space:nowrap}
 .header-actions{max-width:none;justify-content:center;margin-top:10px;gap:7px}
 .header-actions .quiet{width:auto;background:#fffbf2;border-color:#d8c7ae;padding:9px 7px;box-shadow:0 3px 0 #d7c7ad}
 .mobile-friend{display:block;width:23px;height:23px;object-fit:contain}.board-label{gap:7px}
}
/* Phase 2: keep all four controls above the board on small screens. */
.button.slow-active{background:#e3edcc;border-color:#8b9d71;color:#4b653f;box-shadow:0 3px 0 #a4b58a}
.button:disabled{cursor:default}
@media(max-width:767px){
 .header-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
 .header-actions .button,.header-actions .quiet{padding:9px 2px;font-size:9px;white-space:nowrap;letter-spacing:-.4px}
 .header-actions .quiet #soundText{font-size:8px}
}
@media(max-width:359px){
 .header-actions .button,.header-actions .quiet{font-size:8px;padding:9px 1px}
 .header-actions .quiet #soundText{font-size:7px}
}
