*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:#263c32;background:#fff8e8 radial-gradient(#8ebc7840 1.5px,#0000 1.5px) 0 0/28px 28px;min-width:320px;margin:0;font-family:ui-rounded,Hiragino Maru Gothic ProN,Yu Gothic,system-ui,sans-serif;font-size:16px;line-height:1.65}a{color:inherit}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline-offset:3px;outline:4px solid #f2bc3e}.site-header{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffefaee;border-bottom:2px solid #dcd0b5;justify-content:space-between;align-items:center;min-height:74px;padding:10px max(18px,50vw - 590px);display:flex;position:sticky;top:0}.brand{color:#245c45;align-items:center;gap:10px;font-size:1.2rem;text-decoration:none;display:flex}.brand>span{color:#fff;background:#245c45;border-radius:9px;place-items:center;width:42px;height:48px;display:grid}.auth-controls{align-items:center;gap:9px;display:flex}.auth-controls>span:not(.provider-dot){font-weight:800;line-height:1.1;display:grid}.auth-controls small{color:#607064;font-size:.7rem}.provider-dot{background:#4b9d64;border-radius:50%;width:12px;height:12px}.logout{color:#263c32;background:#fff;border:2px solid #d7cdb9;border-radius:999px;min-height:44px;padding:8px 14px;font-weight:800}.hero{background:linear-gradient(155deg,#fff8e8 35%,#d9eabb);grid-template-columns:1.15fr .85fr;align-items:center;gap:48px;min-height:570px;padding:80px max(24px,50vw - 560px);display:grid;overflow:hidden}.eyebrow{color:#26764a;letter-spacing:.08em;margin:0 0 8px;font-weight:900}.hero h1,.content-page h1,.game-title h1,.entry h1{letter-spacing:-.04em;margin:.1em 0;font-size:clamp(2.3rem,6vw,4.8rem);line-height:1.1}.hero h1 span{color:#d24e48}.hero p:not(.eyebrow){max-width:620px;font-size:1.16rem}.hero-art{justify-content:center;align-items:center;height:360px;display:flex;position:relative}.hero-art span{transform-origin:50% 100%;background:#fffefa;border:8px solid #263c32;border-radius:22px;place-items:center;width:185px;height:260px;font-size:4rem;display:grid;position:absolute;box-shadow:0 10px #263c32}.hero-art span:first-child{color:#263c32;transform:rotate(-26deg)}.hero-art span:nth-child(2){color:#d24e48;transform:rotate(-9deg)}.hero-art span:nth-child(3){color:#d24e48;transform:rotate(9deg)}.hero-art span:nth-child(4){color:#245c45;transform:rotate(26deg)}.button{cursor:pointer;border:2px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:46px;padding:10px 19px;font-weight:900;text-decoration:none;display:inline-flex}.button.primary{color:#fff;background:#245c45;box-shadow:0 5px #183d2d}.button.quiet{color:#263c32;background:#fffefa;border-color:#b9aa8b}.button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none}.games-section,.content-page,.game-page{width:min(1180px,100% - 36px);margin:0 auto;padding:70px 0}.games-section>h2{margin:0 0 28px;font-size:2.4rem}.game-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.game-card,.panel{background:#fffefa;border:2px solid #d8cdaa;border-radius:28px;gap:16px;padding:26px;display:grid;box-shadow:0 7px #cbbf9e,0 18px 40px #354a3818}.game-card h3{margin:0;font-size:2rem}.game-card p{min-height:54px}.game-symbol{background:#f3d889;border-radius:22px;place-items:center;width:70px;height:70px;font-size:2.2rem;display:grid}.mode-badges,.rule-badges,.actions{flex-wrap:wrap;gap:10px;display:flex}.mode-badges span,.rule-badges span{color:#245c45;background:#e6f0d4;border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:900}.entry{background:radial-gradient(circle at 50% 110%,#8fbe70 0 27%,#0000 27.5%),linear-gradient(#fff8e8,#f0e5c5);place-items:center;min-height:100vh;padding:24px;display:grid;overflow-x:hidden}.entry-card{overflow-wrap:anywhere;text-align:center;background:#fffefa;border:2px solid #d8cdaa;border-radius:32px;width:100%;max-width:520px;padding:34px;box-shadow:0 8px #c6a66a,0 22px 50px #354a3822}.entry-card h1{font-size:2.25rem}.entry-mark{color:#245c45;background:#fff;border:5px solid #245c45;border-radius:14px;place-items:center;width:76px;height:92px;margin:0 auto 22px;font-size:2.4rem;display:grid;transform:rotate(-5deg)}.login-actions{gap:12px;margin:24px 0;display:grid}.login-actions button{color:#245c45;background:#fff;border:2px solid #245c45;border-radius:999px;min-height:50px;font-weight:900}.login-actions .line{color:#fff;background:#167f3c;border-color:#167f3c}.entry-card label,.panel label{text-align:left;gap:6px;font-weight:900;display:grid}.entry-card input,.panel input,.panel select{background:#fff;border:2px solid #9f967f;border-radius:12px;width:100%;min-height:48px;padding:8px 12px}.policy-links{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:22px;font-size:.85rem;display:flex}.content-page>p{max-width:780px}.policy{max-width:850px}.policy h2{margin-top:38px}.policy dl{grid-template-columns:120px 1fr;gap:12px;display:grid}.policy dt{font-weight:900}.lobby-grid{grid-template-columns:1fr 1fr;gap:24px;margin-top:30px;display:grid}.seat-list{gap:10px;padding:0;list-style:none;display:grid}.seat-list li{background:#f2ecd9;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px;display:grid}.game-title{justify-content:space-between;align-items:center;gap:20px;display:flex}.game-title h1{font-size:clamp(2rem,5vw,3.7rem)}.game-status,.result{background:#eff6dc;border:2px solid #a7bd84;border-radius:16px;padding:12px 18px;font-weight:900}.result{text-align:center;font-size:2rem}.card-table{color:#fff;background:#245c45;border:7px solid #d1aa6c;border-radius:34px;gap:26px;min-height:530px;margin-top:22px;padding:30px;display:grid;box-shadow:inset 0 0 0 2px #fff4,0 10px #865d37}.opponent,.your-area{justify-items:center;gap:10px;display:grid}.opponent.compact{grid-template-columns:auto auto 1fr auto;place-items:center start}.avatar{font-size:2.5rem}.hand-scroll,.back-row,.pile,.speed-piles{justify-content:center;gap:8px;max-width:100%;padding:15px 8px;display:flex;overflow-x:auto}.playing-card,.card-back{color:#263c32;text-align:left;background:#fffefa;border:3px solid #dfd2b6;border-radius:13px;flex:0 0 78px;width:78px;height:110px;padding:7px;font-weight:900;transition:transform .14s;position:relative;box-shadow:0 5px #b7a990}.playing-card b{place-items:center;height:60px;font-size:2.25rem;display:grid}.playing-card span:last-child{text-align:right;display:block}.playing-card.red{color:#bd3838}.playing-card.selected{border-color:#f2bc3e;transform:translateY(-14px)}.playing-card:disabled{opacity:1}.card-back{color:#fff;background:repeating-linear-gradient(45deg,#245c45,#245c45 8px,#397b5f 8px 16px);border-color:#f4d785;place-items:center;font-size:2.2rem;display:grid}.pile-target{background:0 0;border:3px dashed #0000;border-radius:18px;padding:10px}.pile-target:not(:disabled){cursor:pointer;border-color:#f2bc3e}.pile-target .playing-card{pointer-events:none}.speed-table{align-content:start}.speed-piles{min-height:155px}.online-table{align-content:start}footer{background:#fffefa;border-top:2px solid #d8cdaa;grid-template-columns:1fr auto auto;align-items:center;gap:22px;padding:35px max(20px,50vw - 560px);display:grid}footer nav{flex-wrap:wrap;gap:16px;display:flex}@media (max-width:800px){.hero{grid-template-columns:1fr;min-height:auto;padding-top:52px}.hero-art{height:270px;transform:scale(.75)}.game-grid,.lobby-grid{grid-template-columns:1fr}.game-title{align-items:flex-start}.card-table{border-width:5px;margin-inline:-8px;padding:18px 10px}.opponent.compact{grid-template-columns:auto 1fr}.opponent.compact .card-back{display:none}footer{grid-template-columns:1fr}}@media (max-width:390px){body{font-size:15px}.site-header{min-height:64px;padding:8px 12px}.brand strong{font-size:1rem}.auth-controls>span:not(.provider-dot),.provider-dot{display:none}.logout{padding:6px 10px}.hero{padding:40px 20px}.hero h1{font-size:2.55rem}.hero-art{height:210px;transform:scale(.59)}.games-section,.content-page,.game-page{width:calc(100% - 24px);padding:42px 0}.game-card,.panel,.entry-card{padding:20px}.actions .button{flex:1}.playing-card,.card-back{flex-basis:66px;width:66px;height:94px}.playing-card b{height:48px;font-size:1.8rem}.card-table{border-radius:22px}.speed-piles{gap:0}.entry{padding:16px}.entry-card h1{font-size:2rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.playing-card.selected{transform:none}}
