*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;touch-action:none;overscroll-behavior:none;font-family:"Yu Gothic",Meiryo,sans-serif;color:#fff7df;background:#192e31}button{font:inherit;color:inherit;border:1px solid #ffffff35;background:#314440;border-radius:12px;padding:10px 15px;cursor:pointer;touch-action:none;font-weight:bold}button:hover{filter:brightness(1.13)}button:disabled{opacity:.4;cursor:default}button:focus-visible{outline:3px solid #ffd06a}small{font-size:10px}#world{position:fixed;width:100%;height:100%;display:block} [hidden]{display:none!important}#hud{position:fixed;inset:0;pointer-events:none}#hud button{pointer-events:auto}header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:linear-gradient(#172e32ef,#172e3280,transparent)}.brand{font-weight:bold;font-size:21px}.brand small{display:block;letter-spacing:4px;color:#edbf77}.tools{display:flex;gap:5px}.tools button{font-size:12px;padding:9px}.stats{display:flex;gap:20px;justify-content:center;margin:0 auto;width:fit-content;background:#203932ed;padding:10px 22px;border-radius:30px;box-shadow:0 4px 20px #0002}.stats span{color:#e6bf7f;font-size:13px}.stats b{color:#fff;font-size:19px}#forecast{text-align:center;margin:7px auto;font-size:12px;background:#253a35dc;width:fit-content;padding:6px 14px;border-radius:8px}footer{position:absolute;bottom:0;width:100%;padding:12px 18px;background:linear-gradient(transparent,#152d2af5 25%);text-align:center}#status{font-size:13px;margin-bottom:9px;color:#fff2c3}.bottom{display:flex;justify-content:center;gap:9px}.bottom button{min-height:52px}#meditate{background:#385f61;min-width:235px}#meditate small{display:block;font-weight:normal;margin-top:2px}#meditate.active{background:#8068a1;border-color:#e4c9ff;box-shadow:0 0 24px #c5a0ff55}#next{background:#ae673c}.legend{font-size:10px;opacity:.8;margin-top:7px}.screen{position:fixed;inset:0;display:flex;overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain;background:#122a3066;backdrop-filter:blur(5px);padding:18px}.screen>*{margin:auto;flex:none;max-width:100%}.titlecard{text-align:center;width:430px;border:1px solid #ffedb83d;background:#193733e8;border-radius:26px;padding:30px 24px;box-shadow:0 25px 100px #101e2370}.eyebrow{font-size:10px;letter-spacing:2px;color:#e9c48a}h1{font-size:62px;line-height:1.03;letter-spacing:7px;margin:22px 0 15px;text-shadow:0 4px #112d2a}h1 em{color:#f2b35c;font-style:normal}.subtitle{font-size:13px;color:#ead8b4}.rules{font-size:13px;line-height:2;margin:22px 0}.primary{display:block;width:100%;background:#e8aa56;color:#293b31;border:0;font-size:18px;padding:15px;box-shadow:0 5px #ac763a;margin:12px 0 16px}.controls{font-size:11px;line-height:1.8;color:#c4d0bf}.card{position:relative;background:#203d37;border:1px solid #d9bd7b66;border-radius:22px;padding:28px;width:380px;max-height:90dvh;overflow:auto;text-align:center}.card h2{font-size:25px}.card p{font-size:13px;line-height:1.8}.score{font-size:50px;color:#ffd180;font-weight:bold}.close{position:absolute;right:10px;top:10px;padding:3px 10px;font-size:23px}.slot{background:#122c2780;padding:12px;border-radius:12px;margin:10px 0}.slot h3{margin:0 0 8px;font-size:14px}.choices{display:flex;gap:5px}.choices button{flex:1;padding:10px 3px;font-size:12px}.choices small{display:block;font-size:9px;margin:5px 0}.slot p{margin:6px 0}#hint{position:absolute;left:50%;bottom:150px;transform:translateX(-50%);width:290px;background:#fff0cb;color:#354b38;padding:13px 34px 13px 15px;border-radius:14px;box-shadow:0 6px 30px #0003;font-size:13px;line-height:1.6;pointer-events:auto;cursor:pointer}#hint:after{content:'×';position:absolute;right:12px;top:10px}#bestTitle{font-size:12px;color:#e9c48a}#toTitle{font-size:13px;padding:8px 18px}.back{display:inline-block;margin-top:12px;font-size:12px;color:#e9c48a}#next small{display:block;font-weight:normal;margin-top:2px}@media(max-width:600px){#hint{bottom:128px;width:min(330px,92vw)}header{padding:9px 10px}.brand{font-size:15px}.tools button{font-size:10px;padding:9px 7px}.stats{gap:14px;padding:7px 16px}.stats b{font-size:17px}#forecast{font-size:10px;margin:5px auto}.titlecard{padding:23px 18px}h1{font-size:53px}.rules{margin:17px 0;font-size:12px}footer{padding:10px 10px max(10px,env(safe-area-inset-bottom))}#meditate{min-width:210px}.bottom button{font-size:12px;padding:8px 12px}.card{padding:24px 16px}}
#menu{z-index:5}#paused{z-index:10}#result{z-index:10}.titleSound{font-size:12px;padding:7px 16px;margin-bottom:6px}
/* 高さの低い横向き（スマホ横）：タイトルを左右2列にして1画面に収める。はみ出してもスクロールで全部に届く */
.screen button,.screen a{touch-action:manipulation}
@media(orientation:landscape) and (max-height:500px){.screen{padding:8px}.titlecard{width:min(760px,96vw);padding:12px 20px;border-radius:18px;display:grid;grid-template-columns:1.1fr 1fr;grid-auto-flow:row dense;column-gap:22px;align-items:center;text-align:center}
.titlecard>.eyebrow,.titlecard>h1,.titlecard>.subtitle,.titlecard>.rules{grid-column:1}
.titlecard>button,.titlecard>.controls,.titlecard>#bestTitle,.titlecard>.back{grid-column:2}
.titlecard h1{font-size:38px;letter-spacing:4px;margin:4px 0 2px}.titlecard .subtitle{margin:2px 0;font-size:12px}.titlecard .rules{margin:6px 0 0;line-height:1.6;font-size:12px}
.titlecard .primary{padding:10px;margin:0 0 6px;font-size:16px}.titlecard .titleSound{justify-self:center;padding:6px 12px;font-size:12px}.titlecard .controls{margin:6px 0 2px;line-height:1.5;font-size:10px}.titlecard .back{margin-top:4px;padding-block:.3rem}}
