:root{--ink:#17283a;--paper:#f6f2e9;--white:#fff;--orange:#ef573f;--yellow:#f6c64f;--teal:#117d78;--line:#d7d7cf;--shadow:0 22px 60px rgba(23,40,58,.14)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Noto Sans JP",sans-serif;color:var(--ink);background:var(--paper)}body{overflow:hidden}button,input,textarea{font:inherit}button{cursor:pointer}.app-header{position:fixed;z-index:20;inset:0 0 auto;height:74px;padding:0 4vw;display:flex;align-items:center;gap:28px;background:#fff;border-bottom:1px solid #ddd}.brand{display:flex;align-items:center;gap:10px;border:0;background:none;text-align:left;font:800 11px/1.05 "DM Sans";letter-spacing:.12em;color:var(--ink)}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--orange);color:#fff;font-size:22px}.progress{margin-left:auto;display:flex;align-items:center;gap:12px;font:700 12px "DM Sans"}.progress i{display:block;width:160px;height:5px;background:#e8e6df;border-radius:5px;overflow:hidden}.progress b{display:block;height:100%;width:7.7%;background:var(--orange);transition:.35s}.header-actions{display:flex;gap:8px}.header-actions button{width:40px;height:40px;border:1px solid #ccd1d2;border-radius:50%;background:#fff;color:var(--ink);font-weight:800}.header-actions button:first-child{width:48px;border-radius:20px}.slide{display:none;min-height:100vh;padding:110px 7vw 100px;align-items:center;animation:appear .35s ease}.slide.is-active{display:flex}.slide>div:first-child:not(.split):not(.slide-heading){width:100%}@keyframes appear{from{opacity:0;transform:translateY(10px)}}.eyebrow{font:700 12px "DM Sans";letter-spacing:.2em;color:var(--orange);margin:0 0 18px}.eyebrow.light{color:#ffd86b}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(46px,7vw,98px);line-height:.95;margin:0;font-weight:900}h2{font-size:clamp(38px,5.6vw,76px);line-height:1.12;margin:0 0 28px;font-weight:900;white-space:normal}h2 em{color:var(--orange);font-style:normal}.lead{max-width:720px;font-size:clamp(17px,1.8vw,25px);line-height:1.85}.hero{background:linear-gradient(125deg,#f8f5ed 0 64%,#ef573f 64%);gap:4vw}.hero-copy{width:58%}.hero h2{color:var(--orange);font-size:clamp(48px,7vw,100px)}.hero-lead{font-size:clamp(17px,2vw,26px);font-weight:700}.hero-actions{display:flex;gap:12px;margin-top:34px}.primary-btn,.ghost-btn,.small-btn{border-radius:14px;padding:15px 22px;border:0;font-weight:800}.primary-btn{background:var(--orange);color:#fff;box-shadow:0 10px 24px rgba(239,87,63,.25)}.ghost-btn,.small-btn{background:#fff;border:1px solid #cdd1cf;color:var(--ink)}.bridge-art{position:relative;width:40%;height:380px}.bank{position:absolute;bottom:35px;width:22%;height:120px;background:#263b4d}.bank.left{left:0}.bank.right{right:0}.bridge-deck{position:absolute;left:8%;right:8%;bottom:145px;height:18px;background:#ffd36a;transform:rotate(-1deg)}.truss{position:absolute;bottom:158px;width:25%;height:90px;border:12px solid #fff;border-width:12px 12px 0;clip-path:polygon(50% 0,100% 100%,0 100%)}.t1{left:9%}.t2{left:29%}.t3{left:49%}.t4{left:69%}.weight{position:absolute;bottom:66px;left:calc(50% - 29px);width:58px;height:64px;background:#14283a;color:#fff;display:grid;place-items:center;font-weight:800;border-radius:4px}.weight:before{content:"";position:absolute;height:60px;width:2px;background:#14283a;bottom:62px}.split{width:100%;display:grid;grid-template-columns:1.05fr .95fr;gap:7vw;align-items:center}.mission-card{background:var(--ink);color:#fff;padding:50px;border-radius:28px;box-shadow:var(--shadow)}.mission-card span{font:700 12px "DM Sans";letter-spacing:.18em;color:#ffd36a}.mission-card strong,.mission-card b{display:block}.mission-card strong{font-size:24px;margin-top:30px}.mission-card b{font:700 clamp(70px,10vw,150px)/1 "DM Sans";color:var(--orange)}.mission-card p{font-size:18px;line-height:1.7}.slide-heading{width:100%;display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:34px}.slide-heading h2{margin:0}.slide-heading>p{max-width:520px;font-size:17px;line-height:1.7}.teams-grid,.measure-grid{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.team-card,.measure-card{background:#fff;border-radius:20px;padding:24px;border-top:7px solid var(--team);box-shadow:0 8px 25px rgba(23,40,58,.08)}.team-card header,.measure-card header{display:flex;justify-content:space-between;align-items:center}.team-card header b{font:800 34px "DM Sans";color:var(--team)}.team-card h3{font-size:20px}.team-card ul{padding-left:20px;line-height:1.9}.materials{width:100%;display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.materials button{min-height:220px;padding:22px;border:2px solid transparent;border-radius:20px;background:#fff;color:var(--ink);display:flex;flex-direction:column;align-items:flex-start;gap:14px;text-align:left}.materials button span{font:700 12px "DM Sans";color:#999}.materials button b{font-size:18px}.materials button strong{margin-top:auto;font:800 46px "DM Sans"}.materials button small{font:700 14px "Noto Sans JP"}.materials button i{align-self:flex-end;width:34px;height:34px;border:2px solid #ccd1d2;border-radius:50%;display:grid;place-items:center;color:transparent}.materials button.checked{border-color:var(--teal);background:#eef9f5}.materials button.checked i{background:var(--teal);border-color:var(--teal);color:#fff}.rule-slide{justify-content:space-between;gap:6vw}.rule-slide>div{width:42%!important}.rule-list{width:54%;padding:0;margin:0;list-style:none}.rule-list li{display:grid;grid-template-columns:70px 1fr;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}.rule-list span{font:800 28px "DM Sans";color:var(--orange)}.rule-list b{font-size:21px}.rule-list p{margin:7px 0 0;line-height:1.7}.truss-demo{position:relative;height:330px;background:#173047;border-radius:28px;overflow:hidden}.truss-demo span{position:absolute;width:42%;height:10px;background:#ffd15c;left:8%;top:50%;transform-origin:right center}.truss-demo span:nth-child(1){transform:rotate(34deg)}.truss-demo span:nth-child(2){left:42%;transform:rotate(-34deg)}.truss-demo span:nth-child(3){left:42%;transform:rotate(34deg)}.truss-demo span:nth-child(4){left:76%;transform:rotate(-34deg)}.truss-demo span:nth-child(5){width:84%;transform:none;top:73%}.truss-demo span:nth-child(6){width:84%;transform:none;top:27%}.truss-demo b{position:absolute;left:45%;top:42%;color:#fff}.principles{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.principles article{background:#fff;padding:32px;border-radius:22px;border-bottom:7px solid var(--orange)}.principles span{font:800 48px "DM Sans";color:#e6e2d9}.principles h3{font-size:22px}.principles p{line-height:1.7}.dark{background:var(--ink);color:#fff}.timer-slide{justify-content:space-between;gap:5vw}.timer-slide>div:first-child{width:52%!important}.timer-slide ul{font-size:18px;line-height:2}.timer-card{width:min(420px,42%);background:#fff;color:var(--ink);padding:38px;border-radius:28px;text-align:center}.timer-card.accent{background:var(--orange);color:#fff}.timer-card>p{font:700 13px "DM Sans";letter-spacing:.18em}.timer-display{display:block;font:700 clamp(72px,9vw,130px)/1 "DM Sans"}.timer-track{height:8px;background:rgba(127,127,127,.25);border-radius:8px;margin:28px 0;overflow:hidden}.timer-track i{display:block;width:100%;height:100%;background:var(--yellow)}.timer-card>div:last-child{display:flex;gap:10px}.timer-card button{flex:1;padding:14px;border:0;border-radius:12px;font-weight:800}.timer-toggle{background:var(--ink);color:#fff}.milestones p{display:flex;gap:15px;align-items:center}.milestones b{color:#ffd15c;font:800 24px "DM Sans"}.measure-card{text-align:center}.measure-card header{font-weight:800}.score-entry{display:flex;align-items:end;justify-content:center;margin-top:25px}.score-entry input{width:150px;border:0;border-bottom:3px solid var(--team);font:800 46px "DM Sans";text-align:center;color:var(--ink);outline:none}.score-entry span{font-weight:800;margin:0 0 8px 7px}.results-btn{display:block;margin:30px auto 0}.winner-slide{background:var(--orange);color:#fff;display:none;flex-direction:column;align-items:flex-start}.winner-slide.is-active{display:flex}.winner-slide h2 em{color:#ffd15c}.podium{width:100%;display:flex;gap:12px;align-items:flex-end}.podium article{flex:1;background:#fff;color:var(--ink);padding:22px;text-align:center;border-radius:18px 18px 0 0}.podium article:first-child{min-height:210px}.podium article strong{display:block;font:800 34px "DM Sans";color:var(--orange)}.questions p{display:grid;grid-template-columns:54px 1fr;gap:16px;padding:20px;background:#fff;border-radius:16px;box-shadow:0 8px 25px rgba(23,40,58,.07)}.questions span{font:800 26px "DM Sans";color:var(--orange)}.finish{justify-content:center;text-align:center;background:linear-gradient(135deg,#f7f3e8,#f7dccd)}.finish>div{width:auto!important}.nav-bar{position:fixed;z-index:20;bottom:0;left:0;right:0;height:76px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:#fff;border-top:1px solid #ddd}.nav-bar nav{display:flex;gap:18px}.nav-bar a{font-size:12px;color:#65717a}.nav-bar button{min-width:52px;height:46px;border:1px solid #ccd1d2;background:#fff;border-radius:12px;font-weight:800}.nav-bar #nextBtn{min-width:110px;background:var(--ink);color:#fff;border-color:var(--ink)}dialog{width:min(1000px,94vw);max-height:88vh;padding:0;border:0;border-radius:24px;box-shadow:var(--shadow)}dialog::backdrop{background:rgba(12,24,36,.72)}dialog form>header,dialog form>footer{padding:22px 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ddd}dialog form>header p{font:700 11px "DM Sans";letter-spacing:.16em;color:var(--orange);margin:0}dialog form>header h2{font-size:30px;margin:3px 0}dialog form>header button{border:0;background:none;font-size:32px}.setup-body{padding:26px;display:grid;grid-template-columns:1.3fr .7fr;gap:34px;overflow:auto}.setup-body h3{font-size:22px}.team-editor{display:grid;grid-template-columns:170px 1fr 38px;gap:10px;margin:12px 0}.team-editor input,.team-editor textarea,.settings-grid input{width:100%;border:1px solid #ccd1d2;border-radius:10px;padding:11px}.team-editor textarea{resize:vertical}.team-editor button{border:0;background:#fee9e5;color:#b53427;border-radius:10px}.settings-grid{display:grid;gap:12px}.settings-grid label{display:grid;grid-template-columns:1fr 80px 35px;align-items:center;gap:8px}.save-note{font-size:13px;color:#69747b;margin-top:24px}.toast{position:fixed;z-index:50;left:50%;bottom:95px;transform:translate(-50%,20px);background:#111f2d;color:#fff;padding:13px 20px;border-radius:12px;opacity:0;pointer-events:none;transition:.25s}.toast.show{opacity:1;transform:translate(-50%,0)}.confetti{position:fixed;inset:0;z-index:60;pointer-events:none;overflow:hidden}.confetti i{position:absolute;top:-20px;width:11px;height:18px;animation:fall 1.7s ease-in forwards}@keyframes fall{to{transform:translate(var(--drift),105vh) rotate(760deg)}}@media(max-width:850px){body{overflow:auto}.app-header{height:62px;padding:0 14px}.progress i{display:none}.slide{min-height:100svh;padding:88px 20px 100px;align-items:flex-start}.hero{background:linear-gradient(160deg,#f8f5ed 0 72%,#ef573f 72%);flex-direction:column}.hero-copy{width:100%}.bridge-art{width:100%;height:230px}.split,.setup-body{grid-template-columns:1fr}.materials{grid-template-columns:repeat(2,1fr)}.materials button{min-height:150px}.rule-slide,.timer-slide{flex-direction:column}.rule-slide>div,.rule-list,.timer-slide>div:first-child,.timer-card{width:100%!important}.principles{grid-template-columns:1fr}.slide-heading{align-items:flex-start;flex-direction:column}.nav-bar nav{display:none}.teams-grid,.measure-grid{grid-template-columns:1fr 1fr}.team-editor{grid-template-columns:1fr 36px}.team-editor textarea{grid-column:1/-1}.header-actions button{width:36px;height:36px}.header-actions button:first-child{width:42px}h2{font-size:38px}.timer-display{font-size:72px}}@media(max-width:520px){.materials,.teams-grid,.measure-grid{grid-template-columns:1fr}.hero-actions{flex-direction:column}.podium{align-items:stretch;flex-direction:column}.podium article{width:100%;min-height:0!important;border-radius:14px}.brand span:last-child{display:none}}
