@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap";:root{font-family:DM Sans,Noto Sans JP,sans-serif;color:#eff3e9;background:#101313;font-synthesis:none;text-rendering:optimizeLegibility;font-optical-sizing:auto;font-weight:400;--bg:#101313;--panel:#181d1b;--line:#2b3330;--muted:#9aa69b;--mint:#b6f36b;--orange:#ff9465}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(ellipse at 83% 2%,#1f2b1e 0,transparent 37%),var(--bg)}a{color:inherit;text-decoration:none}button,input{font:inherit}.landing,.game-page{max-width:1220px;margin:auto;padding:0 46px}.topbar{height:88px;border-bottom:1px solid #29302d;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;font-weight:700;font-size:17px;letter-spacing:-.03em}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border:1px solid #536b44;color:var(--mint);font-size:17px;transform:rotate(-4deg)}.brand small{display:block;color:#849087;font:9px DM Mono,monospace;letter-spacing:.12em;margin-top:3px}.guide-link,.topbar a:last-child{font:11px DM Mono,monospace;color:#c3cec1;letter-spacing:.03em}.hero{min-height:530px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;position:relative}.hero-copy{padding:34px 0 42px}.eyebrow{font:10px DM Mono,monospace;letter-spacing:.16em;color:#9ba99d;margin:0 0 21px}.pulse{width:7px;height:7px;display:inline-block;border-radius:50%;background:var(--mint);box-shadow:0 0 12px #b6f36b77;vertical-align:middle;margin-right:7px}.version{color:#5c6b60;margin-left:9px}.hero h1{font-size:clamp(40px,5.1vw,64px);line-height:1.18;letter-spacing:-.06em;margin:0;font-weight:700}.hero h1 em{font-style:normal;color:var(--mint)}.lede{color:#a8b1a8;font-size:14px;line-height:1.9;margin:24px 0 31px}.start-card{max-width:470px;padding:17px 18px 13px;background:#1a201d;border:1px solid #303a33}.start-card label{font:10px DM Mono,monospace;color:#87948a;letter-spacing:.1em}.start-row{display:flex;gap:8px;margin-top:10px}.start-row input{min-width:0;flex:1;background:#101413;color:#f2f5ec;border:1px solid #333e36;padding:12px 13px;outline:none}.start-row input:focus{border-color:#83ad56}.start-row button,.share-button{background:var(--mint);color:#1a2315;border:0;padding:0 16px;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.start-row button span{font-size:18px;margin-left:10px}.start-row button:disabled{opacity:.55;cursor:wait}.start-card>p{font-size:10px;color:#7d897f;margin:11px 0 0}.hero-art{height:420px;position:relative;display:grid;place-items:center;overflow:hidden}.orbit{position:absolute;border:1px solid #354335;border-radius:50%;transform:rotate(-23deg)}.orbit-a{width:420px;height:214px}.orbit-b{width:340px;height:310px;transform:rotate(51deg);border-style:dashed;opacity:.55}.hero-art:before{content:"";position:absolute;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,#28402755,transparent 69%)}.hand{position:absolute;z-index:1;width:91px;height:91px;border:1px solid #566346;background:#1a211a;border-radius:24px;display:grid;place-items:center;font-size:47px;box-shadow:0 18px 60px #0006}.hand-rock{top:48px;left:calc(50% - 46px);transform:rotate(-8deg)}.hand-paper{bottom:56px;left:12%;transform:rotate(9deg)}.hand-scissors{bottom:56px;right:12%;transform:rotate(-7deg)}.art-center{position:relative;z-index:2;color:var(--mint);font:500 24px DM Mono,monospace;text-align:center;text-shadow:0 0 30px #b6f36b55}.art-center span{display:block;color:#95a395;font:10px Noto Sans JP,sans-serif;margin-top:6px;text-shadow:none}.floating-tag{position:absolute;border:1px solid #414c41;background:#171d19;padding:7px 10px;color:#b6c2b6;font:9px DM Mono,monospace;letter-spacing:.1em}.tag-one{top:106px;right:10%}.tag-two{bottom:74px;left:20%}.feature-strip{border-top:1px solid #29302d;border-bottom:1px solid #29302d;display:grid;grid-template-columns:repeat(3,1fr);padding:22px 0}.feature-strip>div{display:grid;grid-template-columns:32px 1fr;grid-template-rows:auto auto;gap:5px 10px;padding:0 20px;border-right:1px solid #29302d}.feature-strip>div:first-child{padding-left:0}.feature-strip>div:last-child{border:0}.feature-strip>div>span{grid-row:1/3;font:10px DM Mono,monospace;color:var(--mint)}.feature-strip strong{font-size:12px}.feature-strip small{font-size:10px;color:#87938a}footer{display:flex;justify-content:space-between;padding:23px 0;color:#718076;font:9px DM Mono,monospace;letter-spacing:.04em}footer a{color:#abb7aa}.error{color:#ffab8b;font-size:12px}.loading-shell{min-height:100vh;display:grid;align-content:center;justify-items:center;gap:12px;color:#aab5ab}.loader{width:25px;height:25px;border:2px solid #34402f;border-top-color:var(--mint);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-shell a{color:var(--mint);font-size:12px}.room-badge{font:10px DM Mono,monospace;letter-spacing:.08em;color:#bfccb9}.room-badge i{font-style:normal;color:#58645a;margin:0 7px}.share-button{padding:11px 14px;font-size:10px}.game-wrap{max-width:870px;margin:0 auto;padding:50px 0 32px}.game-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.game-heading .eyebrow{margin-bottom:10px}.game-heading h1{font-size:40px;letter-spacing:-.06em;margin:0}.game-heading p:last-child{font-size:12px;color:#89968c;margin:8px 0 0}.round-pill{width:76px;height:76px;border:1px solid #3a443c;border-radius:50%;display:grid;align-content:center;justify-content:center;text-align:center}.round-pill small{font:8px DM Mono,monospace;color:#8e9a8f;letter-spacing:.14em}.round-pill b{font:20px DM Mono,monospace;margin-top:3px}.round-pill i{font-style:normal;font-size:10px;color:#829083}.scoreboard{border:1px solid #303834;background:linear-gradient(135deg,#1c231f,#171c1a);min-height:190px;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;text-align:center}.score-side{display:grid;justify-items:center}.side-label{font:9px DM Mono,monospace;color:#94a193;letter-spacing:.17em}.avatar{width:52px;height:52px;display:grid;place-items:center;margin:12px 0 6px;border-radius:16px;font-size:21px}.player-avatar{background:#283c25;color:var(--mint);border:1px solid #4a6340}.npc-avatar{background:#382822;color:#ffab7e;border:1px solid #674439}.score-side h2{font-size:13px;font-weight:600;margin:0}.score-dots{display:flex;gap:6px;margin-top:10px}.score-dots i{width:7px;height:7px;border:1px solid #59645b;border-radius:50%}.score-dots i.won{background:var(--mint);border-color:var(--mint);box-shadow:0 0 8px #b6f36b77}.score-dots i.lost{background:var(--orange);border-color:var(--orange)}.score-center{display:grid;justify-items:center}.versus{font:10px DM Mono,monospace;color:#718074;letter-spacing:.15em}.scoreline{display:flex;align-items:center;gap:14px;margin:2px 0}.scoreline b{font:54px DM Mono,monospace;line-height:1}.scoreline b:first-child{color:var(--mint)}.scoreline b:last-child{color:var(--orange)}.scoreline span{font:19px DM Mono,monospace;color:#687368}.score-center>small{color:#869286;font-size:10px}.round-stage{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;text-align:center;min-height:166px;border:1px solid #303834;border-top:0;background:#151a18}.stage-side>span{font:9px DM Mono,monospace;color:#78877a;letter-spacing:.1em}.stage-hand{font-size:39px;margin:7px 0 1px;filter:drop-shadow(0 5px 18px #0008);animation:pop .28s ease-out}.stage-side b{font-size:11px;font-weight:500;color:#bdc7bb}@keyframes pop{0%{transform:scale(.5) rotate(-16deg);opacity:.2}to{transform:scale(1);opacity:1}}.stage-result{display:grid;justify-items:center}.result-spark{color:var(--mint);font-size:19px}.stage-result strong{font-size:15px;margin:5px 0}.stage-result small{font-size:10px;color:#849085}.outcome-win .stage-result strong{color:var(--mint)}.outcome-lose .stage-result strong{color:var(--orange)}.move-picker,.spectator-note{margin-top:18px;border:1px solid #303834;background:#191f1c;padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:20px}.move-picker>div:first-child b,.spectator-note b{display:block;font-size:12px}.move-picker>div:first-child small,.spectator-note small{display:block;color:#829086;font-size:10px;margin-top:5px}.move-buttons{display:flex;gap:8px}.move-buttons button{width:75px;height:73px;background:#202822;border:1px solid #394539;color:#ebf2e6;cursor:pointer;transition:.16s}.move-buttons button:hover:not(:disabled){border-color:var(--mint);background:#293526;transform:translateY(-2px)}.move-buttons button:disabled{opacity:.5;cursor:wait}.move-buttons button span{display:block;font-size:25px}.move-buttons button small{display:block;margin-top:5px;color:#aab6a8;font-size:9px}.spectator-note>span{font-size:17px;color:var(--mint)}.spectator-note>div{flex:1}.spectator-note>a{color:var(--mint);font:10px DM Mono,monospace}.finish-banner{margin-top:18px;border:1px solid #495b3b;background:#20291c;padding:15px 18px;display:flex;align-items:center;gap:13px}.finish-banner>span{font-size:24px}.finish-banner div{flex:1}.finish-banner strong{font-size:12px}.finish-banner small{display:block;color:#92a08f;font-size:10px;margin-top:5px}.finish-banner>a{font-size:11px;color:var(--mint)}.finish-banner.loser{border-color:#544138;background:#261e1a}.finish-banner.loser>a{color:#ffae8a}.history-section{margin-top:35px}.section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:12px}.section-title .eyebrow{margin-bottom:5px}.section-title h2{font-size:16px;margin:0}.section-title>span{font:9px DM Mono,monospace;color:#778477}.history-list{border-top:1px solid #303834}.history-row{height:44px;border-bottom:1px solid #252d29;display:grid;grid-template-columns:60px 1fr 45px 1fr 55px;align-items:center;font-size:11px}.history-round{font:10px DM Mono,monospace;color:#7d8a7d}.history-vs{font:9px DM Mono,monospace;color:#687469;text-align:center}.history-outcome{text-align:right;font:9px DM Mono,monospace;letter-spacing:.08em}.history-outcome.win{color:var(--mint)}.history-outcome.lose{color:var(--orange)}.history-outcome.draw{color:#9ca69c}.empty-history{padding:20px;border:1px dashed #343d36;color:#7f8b80;text-align:center;font-size:11px}.game-foot{border-top:1px solid #28302b;margin-top:24px;padding-top:15px;display:flex;justify-content:space-between;color:#758176;font-size:9px}.game-foot a{color:#b4c0b3}.room-badge .pulse{width:6px;height:6px}@media(max-width:760px){.landing,.game-page{padding:0 21px}.topbar{height:70px}.hero{grid-template-columns:1fr;min-height:auto;padding-top:40px}.hero-copy{padding:0}.hero h1{font-size:48px}.hero-art{height:340px;margin-top:-3px}.orbit-a{width:330px}.hand{width:75px;height:75px;font-size:38px}.hand-rock{top:33px}.hand-paper,.hand-scissors{bottom:35px}.feature-strip{gap:13px;padding:17px 0}.feature-strip>div{padding:0 10px;grid-template-columns:1fr;gap:5px}.feature-strip>div>span{grid-row:auto}.feature-strip strong{font-size:10px}.feature-strip small{font-size:9px;line-height:1.5}.room-badge{display:none}.game-wrap{padding-top:32px}.scoreboard{min-height:170px}.scoreline{gap:8px}.scoreline b{font-size:43px}.move-picker{align-items:flex-start;flex-direction:column}.move-buttons{width:100%}.move-buttons button{flex:1}.spectator-note{align-items:flex-start;flex-wrap:wrap}.spectator-note>span{padding-top:1px}.spectator-note>a{margin-left:30px}.game-foot{gap:14px;line-height:1.6}.round-stage{min-height:145px}.history-row{grid-template-columns:40px 1fr 25px 1fr 42px;font-size:10px}.share-button{font-size:9px;padding:9px}.game-heading h1{font-size:34px}.round-pill{width:65px;height:65px}.finish-banner{align-items:flex-start;flex-wrap:wrap}.finish-banner>a{margin-left:37px}}@media(max-width:420px){.hero h1{font-size:40px}.start-row{flex-wrap:wrap}.start-row input{width:100%;flex-basis:100%}.start-row button{padding:12px;flex:1}.hero-art{height:300px}.feature-strip{grid-template-columns:1fr;gap:13px}.feature-strip>div{display:flex;align-items:center;border:0;padding:0!important}.feature-strip>div>span{min-width:26px}.feature-strip small{margin-left:auto;text-align:right}.game-heading p:last-child{max-width:220px;line-height:1.6}.scoreboard{grid-template-columns:1fr 1fr 1fr}.avatar{width:43px;height:43px}.side-label{font-size:8px}.score-side h2{font-size:11px}.stage-result strong{font-size:12px}.stage-result small{font-size:9px}.stage-hand{font-size:32px}.stage-side>span{font-size:7px}.history-row{grid-template-columns:30px 1fr 18px 1fr 35px;font-size:9px}}
