:root { color-scheme: dark; font-family: system-ui, -apple-system, sans-serif; color: #f6f0e2; background: #102d28; }
* { box-sizing: border-box; } body { margin: 0; min-height: 100dvh; padding: env(safe-area-inset-top) max(12px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); background: radial-gradient(ellipse at top, #255749, #102d28 65%); } button, a { -webkit-tap-highlight-color: transparent; } button { font: inherit; cursor: pointer; min-height: 44px; color: inherit; background: #26493e; border: 1px solid #749185; border-radius: 9px; padding: 12px; } button:disabled { cursor: default; opacity: .45; } button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid #ffd088; outline-offset: 3px; } a { color: #f0d29c; } .site-head { max-width: 740px; margin: auto; display: flex; justify-content: space-between; align-items: center; min-height: 66px; font-size: .75rem; letter-spacing: .1em; } .site-head a { display: grid; align-items: center; min-height: 44px; } .site-head b { font-size: 1rem; } main { max-width: 740px; margin: 10px auto 30px; }
h1 { font-size: clamp(2rem, 8vw, 3.5rem); line-height: 1.2; letter-spacing: -.025em; } p { line-height: 1.65; } .intro { max-width: 560px; margin: 25px auto; } .eyebrow { color: #ecc98d; font-size: .8rem; letter-spacing: .1em; } .primary { background: #f0cf96; color: #162f27; font-weight: 800; border-color: #f0cf96; } .intro .primary, .ready .primary, .result .primary { width: 100%; } .muted { color: #bccdc2; font-size: .85rem; } .intro-cards { display: flex; gap: 10px; margin: 32px 0; } .intro-cards span { display: grid; place-items: center; width: 75px; height: 100px; color: #233e33; background: #fcf6e9; border-radius: 8px; font-size: 2rem; font-weight: 800; transform: rotate(-8deg); box-shadow: 0 5px 16px #0004; } .intro-cards span:nth-child(2) { color: #ba3c43; transform: translateY(-8px); } .intro-cards span:last-child { transform: rotate(8deg); }
.run-hud { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: .75rem; margin: 8px 0 20px; } .run-hud b { color: #f7a79b; font-size: 1.2rem; } .section-title { font-size: 1.5rem; } .relic-choices { display: grid; gap: 12px; margin: 25px 0; } .relic-choices button { display: grid; grid-template-columns: 44px 1fr; text-align: left; gap: 6px 12px; padding: 18px; } .relic-choices strong { color: #f0cf96; font-size: 1.1rem; } .relic-choices button > span:last-child { font-size: .85rem; line-height: 1.65; } .seal { grid-row: span 2; display: grid; place-items: center; width: 44px; height: 52px; border: 1px solid #b39b70; color: #f0cf96; font-size: 1.2rem; } .ready, .result { text-align: center; padding: 30px 0; }
.opponents { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; } .opponent { display: grid; justify-items: center; gap: 5px; padding: 10px 4px; border: 1px solid #537267; border-radius: 10px; background: #142f29; } .opponent.active { border-color: #f0cf96; background: #39513a; } .opponent strong { font-size: .75rem; } .opponent > span:last-child { font-size: .7rem; color: #d3dfd2; } .avatar { color: #e6c288; font-size: 1.2rem; }
.table { background: radial-gradient(ellipse, #286047, #163f31); border: 1px solid #648275; border-radius: 18px; padding: 14px 10px 5px; margin: 12px 0; min-height: 148px; } .table.revolution { background: radial-gradient(ellipse, #5d3f69, #2c293f); border-color: #c39dcc; } .table-heading { display: flex; justify-content: space-between; gap: 5px; font-size: .65rem; color: #d2e0cb; } .table-heading b { color: #f0cf96; } .table-cards { display: flex; justify-content: center; gap: 6px; padding: 12px 0 0; min-height: 87px; } .empty-mark { font-size: 3rem; color: #82a18a60; } .last-action { font-size: .7rem; text-align: center; margin: 6px 0; min-height: 1.15rem; }
.card { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; border: 2px solid transparent; border-radius: 6px; background: #fbf6ea; color: #243b35; min-width: 0; padding: 4px; min-height: 65px; box-shadow: 0 3px #0003; } .card b { font-size: 1.35rem; line-height: 1.1; } .card span { font-size: .9rem; } .card.red { color: #b8373e; } .table-cards .card { width: 48px; } .hand .card:disabled { opacity: .85; } .card.possible { border-bottom-color: #e6ad46; } .card.selected { border-color: #d69b35; background: #ffde9f; transform: translateY(-6px); } .hand { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px 4px; margin: 12px 0; } .hand-heading { display: flex; justify-content: space-between; font-size: .75rem; gap: 6px; } .hand-heading span { color: #bfcdc1; font-size: .65rem; } .turn-tip { font-size: .8rem; font-weight: 700; color: #f2d59f; min-height: 2.5em; margin: 8px 0; } .play-actions { display: grid; grid-template-columns: 2fr 1fr; gap: 8px; margin: 14px 0 8px; } .assist-actions { display: flex; flex-wrap: wrap; gap: 6px; } .assist-actions button { font-size: .72rem; flex: 1; padding: 9px; }
.battle-log { min-height: 40px; margin-top: 12px; } .battle-log p { font-size: .72rem; color: #e3c797; margin: 4px 0; } details { margin: 10px 0; font-size: .78rem; color: #cad7cb; } summary { cursor: pointer; min-height: 44px; padding: 12px 0; } .save-note { font-size: .68rem; color: #acbdb2; padding-top: 8px; } .scout-cards { display: flex; flex-wrap: wrap; gap: 4px; } .scout .card { width: 35px; min-height: 50px; } .scout .card b { font-size: 1rem; }
@media (min-width: 620px) { .hand { grid-template-columns: repeat(13, minmax(0, 1fr)); gap: 5px; } .hand .card { min-height: 80px; } .table { min-height: 185px; } .table-cards { padding-top: 20px; } .table-cards .card { width: 58px; min-height: 80px; } }
@media (max-width: 350px) { .hand { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
