
:root{
 --navy:#20324A;--ink:#263243;--paper:#FFF9EF;--cream:#FFF3D7;--pink:#FF7E9D;
 --yellow:#FFD45C;--blue:#65B9F4;--mint:#65D6B2;--purple:#A887F5;--orange:#FF9D5C;
 --red:#F26767;--line:#20324A;--muted:#667387;--shadow:7px 8px 0 #20324A;
 --focus:#20324A
}
*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:#FFF4CF;color:var(--ink);font-family:"Arial Rounded MT Bold","Trebuchet MS","Segoe UI",sans-serif}
button,input,textarea,select{font:inherit;color:inherit}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}a{color:inherit;text-decoration:none}
:focus-visible{outline:4px solid var(--focus);outline-offset:4px}
.top{position:sticky;top:0;z-index:50;background:#FFF9EF;border-bottom:4px solid var(--navy)}
.nav{width:min(1180px,calc(100% - 24px));margin:auto;min-height:70px;display:flex;align-items:center;gap:10px}
.logo{font-size:1.1rem;font-weight:1000;letter-spacing:.12em}.logo b{color:var(--pink)}
.nav a,.nav button{border:3px solid transparent;background:transparent;border-radius:999px;padding:10px 13px;font-weight:1000;font-size:.76rem}
.nav .go{background:var(--navy);color:white;border-color:var(--navy)}.spacer{flex:1}
.shell{width:min(1180px,calc(100% - 24px));margin:auto;padding:34px 0 70px}
.hero{display:grid;grid-template-columns:1fr .95fr;gap:34px;align-items:center;padding:28px 0}
.kicker{display:inline-block;background:var(--pink);color:white;border:3px solid var(--navy);border-radius:999px;padding:8px 12px;font-size:.7rem;font-weight:1000;letter-spacing:.1em;box-shadow:4px 4px 0 var(--navy)}
h1{font-size:clamp(3.3rem,7.5vw,7rem);line-height:.84;letter-spacing:-.065em;margin:16px 0}
h2{font-size:clamp(2rem,3.7vw,3.2rem);letter-spacing:-.04em;margin:0 0 10px}
p{line-height:1.58;color:var(--muted)}
.cartoon-house{background:#8DD9FF;border:5px solid var(--navy);border-radius:40px;padding:20px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.cartoon-house:before{content:"";position:absolute;left:-40px;right:-40px;bottom:-80px;height:180px;background:#7DDA7A;border:5px solid var(--navy);border-radius:50% 50% 0 0}
.roof{width:76%;height:90px;margin:6px auto 0;background:var(--red);border:5px solid var(--navy);clip-path:polygon(50% 0,100% 100%,0 100%)}
.house-body{position:relative;z-index:1;background:#FFF8E7;border:5px solid var(--navy);border-radius:28px;padding:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.room{border:4px solid var(--navy);border-radius:22px;min-height:104px;padding:13px;background:var(--yellow);font-weight:1000;display:flex;flex-direction:column;justify-content:end;box-shadow:4px 5px 0 #20324A}
.room:nth-child(2n){background:var(--mint)}.room:nth-child(3n){background:var(--pink);color:white}.room:nth-child(4n){background:var(--blue)}
.room small{font-size:.64rem;margin-top:4px}.room:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 #20324A}
.bubble{position:relative;background:white;border:4px solid var(--navy);border-radius:24px;padding:15px 17px;box-shadow:5px 6px 0 var(--navy)}
.bubble:after{content:"";position:absolute;left:28px;bottom:-14px;width:22px;height:22px;background:white;border-right:4px solid var(--navy);border-bottom:4px solid var(--navy);transform:rotate(45deg)}
.actions{display:flex;gap:10px;flex-wrap:wrap}
.btn{border:4px solid var(--navy);border-radius:16px;padding:12px 15px;font-weight:1000;background:white;box-shadow:4px 5px 0 var(--navy)}
.btn:hover{transform:translate(-1px,-1px);box-shadow:6px 6px 0 var(--navy)}
.btn.pink{background:var(--pink);color:white}.btn.blue{background:var(--blue)}.btn.mint{background:var(--mint)}.btn.yellow{background:var(--yellow)}
.section{margin-top:42px}.section-head{margin-bottom:15px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.card{min-height:154px;background:white;border:4px solid var(--navy);border-radius:25px;padding:17px;box-shadow:5px 6px 0 var(--navy);display:flex;flex-direction:column;justify-content:space-between}
.card:nth-child(4n+1){background:#FFF0F5}.card:nth-child(4n+2){background:#EEFAFF}.card:nth-child(4n+3){background:#F0FFF8}.card:nth-child(4n){background:#FFF8DC}
.card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--navy)}
.tag{display:inline-block;width:max-content;background:var(--yellow);border:3px solid var(--navy);border-radius:999px;padding:5px 8px;font-size:.62rem;font-weight:1000}
.card strong{font-size:1.08rem}.card em{font-style:normal;color:var(--muted);font-size:.78rem}
.search{width:100%;border:4px solid var(--navy);border-radius:18px;background:white;padding:14px 16px;box-shadow:4px 5px 0 var(--navy)}
.safe{background:#EFFFF5;border:4px solid var(--navy);border-radius:22px;padding:15px 16px;box-shadow:4px 5px 0 var(--navy)}
.safe strong{display:block}.safe p{margin:5px 0 0;font-size:.86rem}
.location-head{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:end;margin:16px 0 24px}
.location-head h1{font-size:clamp(3rem,6vw,5.8rem)}
.sticker{display:inline-block;background:var(--yellow);border:4px solid var(--navy);border-radius:18px;padding:10px 13px;font-weight:1000;box-shadow:4px 5px 0 var(--navy);transform:rotate(2deg)}
.spot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.spot{border:4px solid var(--navy);border-radius:22px;background:white;min-height:100px;padding:15px;text-align:left;font-weight:1000;box-shadow:4px 5px 0 var(--navy)}
.spot:nth-child(3n+1){background:#FFF0F5}.spot:nth-child(3n+2){background:#EEF9FF}.spot:nth-child(3n){background:#F0FFF7}
.spot.active{background:var(--yellow);transform:rotate(-1deg)}
.composer{margin-top:28px;background:#FFF0F5;border:5px solid var(--navy);border-radius:32px;padding:22px;box-shadow:var(--shadow)}
.composer h2{margin-top:8px}.selected{background:var(--yellow);border:4px solid var(--navy);border-radius:16px;padding:12px;font-weight:1000}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.full{grid-column:1/-1}
label{display:block;font-size:.68rem;font-weight:1000;letter-spacing:.07em;margin-bottom:6px}
input,textarea,select{width:100%;border:4px solid var(--navy);border-radius:15px;background:white;padding:12px 13px}
textarea{min-height:96px;resize:vertical}
.plan{display:grid;gap:14px}.panel{background:white;border:4px solid var(--navy);border-radius:25px;padding:15px;box-shadow:5px 6px 0 var(--navy);display:grid;grid-template-columns:52px 1fr auto;gap:13px;align-items:center}
.panel:nth-child(odd){background:#FFF0F5}.panel:nth-child(even){background:#EEF9FF}
.num{width:48px;height:48px;border:4px solid var(--navy);border-radius:16px;background:var(--yellow);display:grid;place-items:center;font-weight:1000}
.panel strong{display:block}.panel small{color:var(--muted)}
.empty{border:5px dashed var(--navy);border-radius:28px;padding:42px;text-align:center;background:#FFFDF8}
.runner{max-width:780px;margin:30px auto;background:white;border:5px solid var(--navy);border-radius:38px;padding:26px;box-shadow:var(--shadow);text-align:center}
.counter{display:inline-block;background:var(--blue);border:4px solid var(--navy);border-radius:999px;padding:8px 12px;font-weight:1000}
.clue{margin-top:20px;background:var(--yellow);border:5px solid var(--navy);border-radius:28px;padding:32px;font-size:clamp(1.45rem,3vw,2.2rem);font-weight:1000;line-height:1.22;box-shadow:5px 6px 0 var(--navy)}
.hint{margin-top:14px;background:#EFFFF5;border:4px solid var(--navy);border-radius:18px;padding:14px}
.footer{margin-top:45px;padding-bottom:40px;color:var(--muted);font-size:.8rem}
@media(max-width:900px){.hero{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr)}.spot-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.nav a:not(.go){display:none}.grid,.spot-grid,.form-grid{grid-template-columns:1fr}.house-body{grid-template-columns:repeat(2,1fr)}.location-head{grid-template-columns:1fr}.panel{grid-template-columns:48px 1fr}.panel .actions{grid-column:2}.shell{padding-top:20px}}
@media(pointer:coarse){button,a,input,select{min-height:48px;min-width:44px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.top,.actions,.footer,.safe{display:none!important}.shell{width:100%;padding:0}.panel{break-inside:avoid;box-shadow:none}}
