:root{color-scheme:light;--ink:#26372f;--muted:#727d72;--paper:#f6f3e9;--green:#426954;--green-dark:#294e3a;--green-soft:#e1ebdf;--terra:#d97957;--gold:#f0c97f;--line:#26372f15;--shadow:0 22px 60px #2b493018}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 95% 4%,#e4eee2 0,transparent 28%),radial-gradient(ellipse at 3% 22%,#f5e6c9 0,transparent 24%),var(--paper);color:var(--ink);font-family:'DM Sans',system-ui,-apple-system,'Segoe UI',sans-serif}
button,input{font:inherit}
button{color:inherit}
.hub-link{display:inline-flex;align-items:center;gap:8px;margin:17px max(16px,calc((100% - 1050px)/2));color:#607268;font-size:13px;font-weight:800;text-decoration:none}
.hub-link span{font-size:20px;line-height:1}
.page-shell{width:min(100% - 36px,1000px);margin:0 auto;padding-bottom:22px}
.topbar{min-height:65px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink)}
.brand-mark{width:36px;height:36px;display:grid;place-items:center;border-radius:13px;background:#fff;color:var(--terra);font-size:22px;box-shadow:0 4px 13px #30483510;transform:rotate(-7deg)}
.brand strong,.brand small{display:block}.brand strong{font-family:Manrope,sans-serif;font-size:12px;font-weight:900;letter-spacing:.1em}.brand small{margin-top:3px;color:#808980;font-size:9px;font-weight:800;letter-spacing:.12em}
.local-badge{display:flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid #4269541a;border-radius:999px;background:#ffffffa8;color:#60776b;font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.local-badge i,.turn-indicator{width:7px;height:7px;border-radius:50%;background:#6ca77b;box-shadow:0 0 0 4px #6ca77b20}
.hero{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:26px;padding:39px 0 28px}
.eyebrow{display:flex;align-items:center;gap:8px;margin:0 0 12px;color:#778477;font-size:10px;font-weight:900;letter-spacing:.14em}.eyebrow span{color:var(--terra);font-size:15px}
h1{margin:0;font-family:Manrope,'DM Sans',sans-serif;font-size:clamp(44px,7vw,76px);font-weight:850;line-height:.96;letter-spacing:-.075em}h1 em{color:var(--terra);font-style:normal}
.hero-text{max-width:480px;margin:15px 0 0;color:var(--muted);font-size:15px;line-height:1.65}
.hero-art{height:180px;position:relative;display:grid;place-items:center;overflow:hidden;border:1px solid #ffffffa8;border-radius:25px;background:radial-gradient(ellipse at 50% 120%,#d8b970 0,#af7c5f 47%,#6f5352 100%);box-shadow:var(--shadow)}
.hero-art:before,.hero-art:after{content:'';position:absolute;width:235px;height:235px;top:16px;left:50%;border:1px solid #fff3;transform:translateX(-50%);border-radius:50%}.hero-art:after{width:165px;height:165px;top:50px}
.mini-board{position:relative;z-index:2;width:min(78%,340px);height:79px;display:flex;align-items:center;justify-content:space-around;padding:11px;border:8px solid #f0d49a;border-radius:45px;background:#57805f;box-shadow:0 13px 13px #382e2d50;transform:rotate(-5deg)}
.mini-board i{width:27px;height:27px;border:2px solid #e8c784;border-radius:50%;background:radial-gradient(circle at 45% 34%,#d9a968 0 23%,#72544c 27% 100%);box-shadow:inset 0 3px 4px #322b315c}.mini-board b{position:absolute;right:10px;top:50%;width:30px;height:43px;display:grid;place-items:center;border:3px solid #eed49b;border-radius:50%;background:#b97b57;color:#f6d792;font-size:11px;transform:translate(50%,-50%)}
.art-spark{position:absolute;z-index:2;color:#ffe5ad}.spark-one{top:25px;left:19%;font-size:21px}.spark-two{right:15%;bottom:34px;font-size:18px}.art-caption{position:absolute;z-index:2;bottom:15px;color:#fff0c8;font-size:8px;font-weight:900;letter-spacing:.18em}
.game-card{padding:20px;border:1px solid #ffffffd4;border-radius:26px;background:#fffaf2dd;box-shadow:var(--shadow)}
.game-controls{display:flex;align-items:end;justify-content:space-between;gap:14px;margin-bottom:18px}.mode-field{min-width:0;margin:0;padding:0;border:0}.mode-field legend{margin-bottom:8px;color:#7d877e;font-size:10px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.mode-options{display:flex;gap:5px;padding:4px;border-radius:14px;background:#eef0e8}.mode-option{position:relative}.mode-option input{position:absolute;width:1px;height:1px;opacity:0}.mode-option span{min-height:37px;display:grid;place-items:center;padding:0 15px;border:1px solid transparent;border-radius:10px;color:#69766d;font-size:12px;font-weight:850;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s}.mode-option input:checked+span{background:#fff;color:var(--green-dark);box-shadow:0 3px 9px #203d2b13}.mode-option input:focus-visible+span{outline:3px solid #d9795777;outline-offset:2px}
.new-game{min-height:42px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 15px;border:0;border-radius:12px;background:var(--green-dark);color:#fff;font-size:12px;font-weight:900;cursor:pointer;transition:transform .2s,background .2s}.new-game:hover{background:#365c44;transform:translateY(-1px)}.new-game span{font-size:18px}
.score-strip{display:flex;align-items:center;justify-content:center;gap:20px;margin:0 auto 14px}.score-player{min-width:118px;display:flex;align-items:center;gap:9px;color:#4d5d52;font-size:12px;font-weight:850}.score-player strong{font-family:Manrope,sans-serif;font-size:19px;font-weight:900;color:var(--green-dark)}.score-player-one .player-dot{order:-1}.score-player-two{justify-content:flex-end}.score-player-two .player-dot{order:1}.player-dot{width:9px;height:9px;border-radius:50%;background:var(--terra);box-shadow:0 0 0 4px #d979571e}.score-player-two .player-dot{background:#69906d;box-shadow:0 0 0 4px #69906d1e}.score-divider{color:#a2a99e;font-size:9px;font-weight:900;letter-spacing:.12em}
.turn-banner{min-height:39px;display:flex;align-items:center;justify-content:center;gap:10px;padding:8px 12px;border-radius:12px;background:#f0f3eb;color:#53675a}.turn-banner p{margin:0;font-size:12px;font-weight:800;text-align:center}.turn-banner.is-bot .turn-indicator{background:#bd8e55;box-shadow:0 0 0 4px #bd8e5524}.turn-banner.is-over{background:#f7ead3;color:#734f39}.turn-banner.is-over .turn-indicator{background:var(--terra);box-shadow:0 0 0 4px #d9795722}
.board-wrap{margin-top:14px;padding:clamp(12px,2.2vw,22px);border:8px solid #e8ce94;border-radius:34px;background:linear-gradient(145deg,#62896b,#52785c);box-shadow:inset 0 2px 7px #ffffff34,0 12px 17px #47372d22}
.board-grid{display:grid;grid-template-columns:76px minmax(0,1fr) 76px;grid-template-rows:minmax(114px,1fr) minmax(114px,1fr);grid-template-areas:'store-two row-two store-one' 'store-two row-one store-one';align-items:stretch;gap:12px}
.store{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:12px 5px;border:3px solid #e8c784;border-radius:48% / 18%;background:linear-gradient(150deg,#c18b62,#a96f52);color:#fff1cb;text-align:center;box-shadow:inset 0 4px 8px #583e3638,0 2px 3px #263b2c25}.store-two{grid-area:store-two}.store-one{grid-area:store-one}.store-label{font-size:8px;font-weight:900;letter-spacing:.13em}.store strong{font-family:Manrope,sans-serif;font-size:clamp(20px,3vw,28px);line-height:1}.store-owner{max-width:100%;overflow:hidden;font-size:9px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.pit-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:center;gap:clamp(4px,.8vw,9px)}.pit-row-two{grid-area:row-two}.pit-row-one{grid-area:row-one}
.pit{position:relative;min-width:0;aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:2px;border:2px solid #e6c681;border-radius:50%;background:radial-gradient(circle at 50% 38%,#719775,#486d54 72%);color:#fff4d2;box-shadow:inset 0 4px 8px #29493073,0 3px 4px #29493042;cursor:pointer;transition:transform .16s,background .16s,box-shadow .16s}.pit:hover:not(:disabled){transform:translateY(-3px);background:radial-gradient(circle at 50% 38%,#83a982,#52785c 72%);box-shadow:inset 0 4px 8px #2949305c,0 6px 7px #29493044}.pit:focus-visible{outline:3px solid #fff2c1;outline-offset:3px}.pit:disabled{cursor:default}.pit.empty{opacity:.68}.pit-count{font-family:Manrope,sans-serif;font-size:clamp(13px,2vw,19px);font-weight:900;line-height:1}.pit-number{color:#e5cf9b;font-size:8px;font-weight:800;line-height:1}
.game-status{min-height:20px;margin:13px 0 0;color:#53675a;font-size:12px;font-weight:800;text-align:center}.board-hint{margin:4px 0 0;color:#8b9389;font-size:10px;text-align:center}
.rules-card{margin-top:18px;overflow:hidden;border:1px solid #ffffffc7;border-radius:20px;background:#fffaf2c9;box-shadow:0 9px 26px #2439470b}.rules-card summary{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 18px;cursor:pointer;list-style:none}.rules-card summary::-webkit-details-marker{display:none}.rules-card summary>span:first-child{display:grid;gap:4px}.rules-card summary small{color:#879183;font-size:9px;font-weight:900;letter-spacing:.13em}.rules-card summary strong{font-family:Manrope,sans-serif;font-size:16px;font-weight:850}.rules-chevron{color:#7a887a;font-size:21px;transition:transform .2s}.rules-card[open] .rules-chevron{transform:rotate(180deg)}.rules-card summary:focus-visible{outline:3px solid #d9795777;outline-offset:-4px}.rules-content{padding:0 18px 18px;color:#627066;font-size:12px;line-height:1.65}.rules-content>p{margin:0 0 9px}.rules-content ol{display:grid;gap:7px;margin:0;padding-left:21px}.rules-content li{padding-left:2px}.rules-content li::marker{color:#bd7656;font-weight:900}.rules-content .variant-note{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#f0f3eb;color:#647469;font-size:11px;font-weight:700}
.app-footer{display:flex;justify-content:space-between;gap:15px;padding:17px 2px 0;color:#909990;font-size:9px;font-weight:800;letter-spacing:.08em}
@media(max-width:620px){.page-shell{width:min(100% - 24px,520px)}.hub-link{margin-top:14px;margin-bottom:13px}.hero{grid-template-columns:1fr;gap:17px;padding:31px 0 21px}.hero-art{height:126px;border-radius:21px}.mini-board{height:65px;width:min(75%,300px);padding:8px;border-width:6px}.mini-board i{width:21px;height:21px}.mini-board b{width:25px;height:35px}.art-caption{bottom:8px;font-size:7px}.spark-one{top:17px}.spark-two{bottom:24px}.hero-text{max-width:440px;margin-top:10px;font-size:14px}.game-card{padding:13px;border-radius:21px}.game-controls{align-items:end;margin-bottom:14px}.mode-option span{min-height:35px;padding:0 11px;font-size:11px}.new-game{min-height:39px;padding:0 11px;font-size:11px}.score-strip{gap:11px}.score-player{min-width:103px;font-size:11px}.score-player strong{font-size:18px}.board-wrap{margin-top:12px;padding:11px;border-width:6px;border-radius:25px}.board-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto auto;grid-template-areas:'store-two' 'row-two' 'row-one' 'store-one';gap:8px}.store{min-height:42px;flex-direction:row;justify-content:center;gap:9px;padding:5px 12px;border-radius:999px}.store-label{font-size:7px}.store strong{font-size:17px}.store-owner{font-size:9px}.pit-row{gap:clamp(4px,1.4vw,8px)}.pit{border-width:1.5px}.pit-number{font-size:7px}.pit-count{font-size:clamp(14px,4.7vw,19px)}.rules-card{margin-top:13px;border-radius:17px}.rules-card summary{min-height:62px;padding:11px 14px}.rules-card summary strong{font-size:14px}.rules-content{padding:0 14px 14px;font-size:11px}.rules-content ol{gap:6px}.app-footer{flex-direction:column;gap:6px;padding-top:14px;font-size:8px}}
@media(max-width:360px){.brand strong{font-size:10px}.brand small{font-size:8px}.local-badge{padding:7px 8px;font-size:9px}.game-card{padding:10px}.mode-options{gap:2px}.mode-option span{padding:0 8px}.new-game{gap:5px;padding:0 8px}.score-player{min-width:90px;gap:7px}.board-wrap{padding:9px;border-width:5px}.pit-row{gap:3px}.pit{border-width:1px}.pit-number{font-size:6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}


/* Congklak coach marks — Driver.js 1.10.2, served locally. */
.tutorial-start{min-height:42px;display:inline-flex;align-items:center;gap:8px;margin:12px 0 0;padding:0 12px;border:1px solid #42695435;border-radius:12px;background:#e1ebdf;color:#294e3a;font-size:12px;font-weight:850;cursor:pointer}
.tutorial-start>span{width:20px;height:20px;display:grid;place-items:center;border-radius:50%;background:#426954;color:#fff;font-weight:900}
.tutorial-start:focus-visible,.congklak-tour button:focus-visible{outline:3px solid #d97957;outline-offset:3px}
.board-grid{position:relative}.tour-capture-target{position:absolute;pointer-events:none}.tour-capture-pit{outline:3px solid #f0c97f;outline-offset:3px}
.driver-popover.congklak-tour{min-width:0;width:min(350px,calc(100vw - 24px));max-width:350px;max-height:calc(100dvh - 24px);overflow-y:auto;padding:18px;border:1px solid #ffffffd9;border-radius:19px;background:#fffaf2;color:var(--ink);box-shadow:0 12px 45px #111c1850;font-family:inherit}
.congklak-tour .driver-popover-title{padding-right:56px;font-family:Manrope,system-ui,sans-serif;font-size:20px;line-height:1.2;letter-spacing:-.035em}
.congklak-tour .driver-popover-description{color:#536458;font-size:13px;line-height:1.55}
.congklak-tour .driver-popover-close-btn{top:12px;right:12px;width:auto;height:auto;min-height:32px;padding:0 5px;color:#596c5e;font-size:11px;font-weight:800}
.congklak-tour .driver-popover-footer{gap:10px;margin-top:15px;align-items:center}
.congklak-tour .driver-popover-progress-text{flex:0 0 auto;color:#69796c;font-size:11px;font-weight:800}
.congklak-tour .driver-popover-navigation-btns{gap:7px;flex-wrap:wrap}
.congklak-tour .driver-popover-footer-btn{min-height:42px;display:inline-flex;align-items:center;justify-content:center;padding:0 13px;border:1px solid #dfe5da;border-radius:11px;background:#fffaf2;color:#536458;font-size:12px;font-weight:850;text-shadow:none}
.congklak-tour .driver-popover-next-btn{border-color:#294e3a;background:#294e3a;color:#fff}
.congklak-tour .driver-popover-next-btn:hover,.congklak-tour .driver-popover-next-btn:focus{background:#365c44}
.congklak-tour .driver-popover-arrow{border-color:#fffaf2}.congklak-tour .driver-popover-arrow-side-left{border-top-color:transparent;border-bottom-color:transparent;border-right-color:transparent}.congklak-tour .driver-popover-arrow-side-right{border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.congklak-tour .driver-popover-arrow-side-top{border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent}.congklak-tour .driver-popover-arrow-side-bottom{border-top-color:transparent;border-left-color:transparent;border-right-color:transparent}
@media(max-width:360px){.driver-popover.congklak-tour{padding:15px}.congklak-tour .driver-popover-title{font-size:18px}.congklak-tour .driver-popover-description{font-size:12px}.congklak-tour .driver-popover-footer-btn{padding:0 10px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.driver-popover,.driver-overlay{animation:none!important;transition:none!important}}
