:root{--forest:#173b2d;--forest-deep:#0e281f;--forest-soft:#315843;--gold:#f6b83f;--gold-deep:#b87819;--lime:#b8d86a;--cream:#fbf4df;--paper:#fffaf0;--ink:#19352a;--muted:#6d776a;--line:#dfe4d0;--coral:#ed765c}*{box-sizing:border-box}html{background:var(--cream)}body{color:var(--ink);background:var(--cream);margin:0;font-family:Trebuchet MS,Segoe UI,sans-serif;font-size:16px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}.shell{width:min(100% - 32px,1160px);margin:0 auto}.app-shell{background:radial-gradient(circle at 80% 0%, #fff9df 0, transparent 33%), var(--cream);min-height:100vh}.topbar{justify-content:space-between;align-items:center;gap:16px;width:min(100% - 32px,1160px);min-height:88px;margin:0 auto;display:flex}.topbar__actions{align-items:center;gap:10px;display:flex}.brand{align-items:center;gap:8px;line-height:.8;display:inline-flex}.brand span{gap:4px;display:grid}.brand b,.brand strong{letter-spacing:-.5px;font-family:Georgia,serif;font-size:17px}.brand b{color:var(--gold-deep);font-weight:600}.brand strong{font-size:22px}.pineapple-mark{filter:drop-shadow(10px 16px #173b2d1f);width:min(100%,260px);height:auto}.pineapple-mark--small{filter:none;width:39px}.identity-chip{color:var(--forest-soft);align-items:center;gap:7px;font-size:13px;font-weight:700;display:none}.identity-chip__dot{background:var(--lime);border:1px solid var(--forest);border-radius:50%;width:7px;height:7px}.button{border:0;border-radius:11px;justify-content:center;align-items:center;gap:10px;min-height:50px;padding:0 20px;font-weight:800;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button--gold{color:var(--forest-deep);background:var(--gold);box-shadow:0 5px 0 var(--gold-deep)}.button--dark{color:var(--cream);background:var(--forest);box-shadow:0 5px 0 var(--forest-deep)}.button--ghost{min-height:40px;color:var(--forest);border:1px solid var(--line);background:0 0;padding:0 13px}.button--compact{border-radius:8px;min-height:36px;font-size:12px}.button--wide{width:100%;margin-top:8px}.text-link{color:var(--forest-soft);border-bottom:2px solid var(--gold);padding-bottom:2px;font-size:13px;font-weight:800}.eyebrow,.section-kicker{color:var(--gold-deep);text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:900}.eyebrow{align-items:center;gap:8px;display:flex}.eyebrow__line{background:var(--gold);width:28px;height:2px;display:inline-block}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.05em;font-family:Georgia,serif}h1{font-size:clamp(48px,14vw,104px);line-height:.88}h1 em,h2 em{color:var(--gold-deep);font-style:normal}h2{font-size:clamp(28px,7vw,44px);line-height:1}h3{font-size:22px}.muted{color:var(--muted);line-height:1.5}.panel{border:1px solid var(--line);background:#fffaf0db;border-radius:18px;box-shadow:0 14px 30px #2338250d}.landing{min-height:100vh;padding-bottom:28px}.landing__top{justify-content:space-between;align-items:center;min-height:78px;display:flex}.landing__hero{grid-template-columns:1fr .75fr;align-items:center;min-height:430px;padding:50px 0 65px;display:grid}.hero-copy{z-index:1;position:relative}.hero-copy h1{margin:20px 0}.hero-copy p{max-width:300px;color:var(--forest-soft);font-size:17px;line-height:1.45}.hero-stamp{text-align:center;border:1px solid var(--gold-deep);width:94px;height:94px;color:var(--gold-deep);border-radius:50%;place-content:center;margin-top:30px;display:grid;transform:rotate(-10deg)}.hero-stamp span{font:700 33px/1 Georgia,serif}.hero-stamp small{text-transform:uppercase;letter-spacing:.1em;font-size:8px}.hero-art{place-items:center;min-height:330px;display:grid;position:relative}.hero-art .pineapple-mark{z-index:2;position:relative;transform:rotate(8deg)}.sun{background:var(--lime);opacity:.75;border-radius:50%;width:280px;height:280px;position:absolute;top:15px;right:1%}.scribble{border-top:3px solid var(--forest);opacity:.5;border-radius:50%;width:140px;height:30px;position:absolute}.scribble--one{top:25%;left:0;transform:rotate(-26deg)}.scribble--two{bottom:19%;right:-2%;transform:rotate(24deg)}.login-panel{max-width:470px;margin-left:auto;margin-right:11%;padding:28px;position:relative}.login-panel:before{content:"";border-top:2px solid var(--gold);border-left:2px solid var(--gold);background:var(--paper);width:22px;height:22px;position:absolute;top:-9px;left:24px;transform:rotate(45deg)}.login-panel h2{margin:10px 0 8px}.login-panel>p{margin-bottom:21px;font-size:14px}.login-form{gap:14px;display:grid}.field{color:var(--forest-soft);gap:7px;font-size:12px;font-weight:800;display:grid}.field input,.field select,.field textarea{background:var(--paper);width:100%;color:var(--ink);border:1px solid #cbd5bc;border-radius:9px;outline:none;padding:13px 12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--gold-deep);box-shadow:0 0 0 3px #f6b83f2e}.field textarea{resize:vertical;min-height:100px}.form-error{color:#9b3d2d;background:#fde9e3;border-radius:8px;padding:10px 12px;font-size:13px;font-weight:700}.landing__footer{border-top:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;gap:12px;margin-top:46px;padding-top:16px;font-size:10px;display:flex}.dashboard{padding-bottom:80px}.dashboard__intro{justify-content:space-between;align-items:center;gap:30px;padding:50px 0 36px;display:flex}.dashboard__intro h1{margin:16px 0;font-size:clamp(40px,8vw,74px)}.dashboard__intro p{max-width:450px;color:var(--muted)}.dashboard__side{gap:14px;min-width:275px;display:grid}.player-avatar-card{padding:11px 14px}.player-avatar-picker{cursor:pointer;align-items:center;gap:11px;display:flex;position:relative}.player-avatar-picker input{opacity:0;width:1px;height:1px;position:absolute}.player-avatar-frame{background:var(--lime);width:48px;height:48px;color:var(--forest);border-radius:50%;flex:0 0 48px;place-items:center;font:23px Georgia,serif;display:grid;overflow:hidden}.player-avatar-frame img{object-fit:cover;width:100%;height:100%}.player-avatar-picker b,.player-avatar-picker small{display:block}.player-avatar-picker b{font-size:13px}.player-avatar-picker small{color:var(--gold-deep);margin-top:4px;font-size:10px}.player-avatar-message,.player-avatar-error{margin:7px 0 0 59px;font-size:10px;font-style:normal;display:block}.player-avatar-message{color:var(--forest-soft)}.player-avatar-error{color:var(--coral)}.trophy-card{background:var(--forest);min-width:275px;color:var(--cream);box-shadow:7px 7px 0 var(--gold);border-radius:15px;align-items:center;gap:14px;padding:14px 18px;display:flex;transform:rotate(2deg)}.trophy-card .pineapple-mark--small{width:52px}.trophy-card .section-kicker{color:var(--lime);font-size:9px}.trophy-card strong,.trophy-card small{display:block}.trophy-card strong{margin:5px 0;font:22px Georgia,serif}.trophy-card small{color:#c8d8c2;font-size:11px}.progress{padding:20px 22px 18px}.progress__top,.scoreboard__head,.section-heading{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.progress h2{margin-top:7px;font-size:24px}.progress__fraction{color:var(--gold-deep);font:24px Georgia,serif}.progress__bar{background:#e4e7d8;border-radius:20px;height:14px;margin-top:20px;padding:3px}.progress__bar span{border-radius:inherit;background:var(--gold);min-width:4px;height:100%;transition:width .5s;display:block}.progress__labels{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;justify-content:space-between;margin-top:7px;font-size:10px;display:flex}.dashboard__grid{grid-template-columns:1.15fr .85fr;gap:18px;margin-top:18px;display:grid}.scoreboard,.next-up{padding:22px}.scoreboard h2,.next-up h2{margin-top:7px;font-size:29px}.scoreboard__head>span{color:var(--muted);font-size:11px}.scoreboard__list{margin-top:17px}.score-row{border-top:1px solid var(--line);grid-template-columns:34px 32px 1fr auto;align-items:center;gap:7px;min-height:43px;display:grid}.score-row__rank{color:var(--muted);font:13px Georgia,serif}.score-row__avatar{object-fit:cover;background:var(--lime);width:27px;height:27px;color:var(--forest);border-radius:50%;place-items:center;font:700 13px Georgia,serif;display:grid}.score-row__name{font-weight:800}.score-row__name small,.score-row strong small{color:var(--muted);font-size:10px;font-weight:600}.score-row strong{color:var(--gold-deep);font:24px Georgia,serif}.score-row--leader .score-row__name:after{content:"  lider";color:var(--coral);text-transform:uppercase;letter-spacing:.1em;font:10px Trebuchet MS,sans-serif}.empty-state{color:var(--muted);padding:12px 0;font-size:13px}.next-up{background:var(--lime);position:relative;overflow:hidden}.next-up:after{content:"";border:1px solid var(--forest);opacity:.22;border-radius:50%;width:170px;height:170px;position:absolute;bottom:-86px;right:-64px}.next-up__number{color:var(--forest-soft);opacity:.35;margin-top:25px;font:74px/.8 Georgia,serif}.next-up h2{max-width:250px;margin-bottom:8px}.next-up p{color:var(--forest-soft);margin-bottom:20px;font-size:13px}.next-up .button{z-index:1;position:relative}.competitions-section{margin-top:56px}.section-heading{align-items:end;margin-bottom:18px}.section-heading h2{margin-top:7px}.section-heading__note{color:var(--muted);font-size:12px}.competition-list{gap:10px;display:grid}.competition-card{border:1px solid var(--line);background:#fffaf0bd;border-radius:15px;grid-template-columns:58px 1fr 24px;align-items:center;gap:16px;padding:16px 17px;transition:transform .18s,background .18s,box-shadow .18s;display:grid}.competition-card:hover{background:var(--paper);box-shadow:-5px 5px 0 var(--lime);transform:translate(5px)}.competition-card__number{background:var(--forest);width:48px;height:48px;color:var(--gold);border-radius:12px;place-items:center;font:700 19px Georgia,serif;display:grid}.competition-card__meta{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:9px;font-size:10px;display:flex}.competition-card h3{margin:6px 0 5px}.competition-card p{color:var(--muted);font-size:12px;line-height:1.4}.competition-card__result{color:var(--forest-soft);gap:15px;margin-top:9px;font-size:11px;display:flex}.competition-card__result span:last-child{color:var(--gold-deep)}.arrow{color:var(--gold-deep);font-size:24px}.status{letter-spacing:.04em;text-transform:uppercase;border-radius:99px;align-items:center;gap:5px;padding:4px 7px;font-size:9px;font-weight:900;display:inline-flex}.status i{background:currentColor;border-radius:50%;width:5px;height:5px}.status--open{color:var(--muted);background:#eef0e8}.status--running{color:#aa6714;background:#fff0c9}.status--completed{color:var(--forest-soft);background:#e1efbd}.detail-shell,.admin-shell{padding-bottom:80px}.detail-header{border-bottom:1px solid var(--line);padding:45px 0 27px}.detail-header__back{color:var(--muted);font-size:12px;font-weight:800}.detail-header h1{max-width:780px;margin:22px 0 12px;font-size:clamp(38px,9vw,78px)}.detail-header__sub{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.detail-layout{grid-template-columns:1fr .8fr;gap:18px;margin-top:25px;display:grid}.workspace,.comments{padding:23px}.workspace h2,.comments h2{margin:8px 0 7px;font-size:28px}.workspace__intro{color:var(--muted);margin-bottom:20px;font-size:14px;line-height:1.5}.workspace__form{gap:12px;display:grid}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.upload-field{background:#f8f9e9;border:1px dashed #b8c8a3;border-radius:10px;padding:14px;display:block}.upload-field input{width:100%;margin-top:8px;font-size:12px}.upload-field small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.uploaded-preview,.uploaded-inline-image{object-fit:cover;border-radius:7px;width:100%;height:auto;max-height:180px;margin-top:10px}.save-message{color:var(--forest-soft);font-size:13px;font-weight:800}.comment-list{gap:12px;margin-top:17px;display:grid}.comment{background:#f6f4e9;border-radius:11px;padding:13px}.comment__meta{color:var(--gold-deep);justify-content:space-between;gap:10px;font-size:10px;font-weight:800;display:flex}.comment p{color:var(--forest-soft);margin-top:6px;font-size:13px;line-height:1.45}.comment-form{gap:10px;margin-top:15px;display:grid}.result-list{gap:8px;margin-top:22px;display:grid}.result-item{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:9px 0;font-size:13px;display:flex}.result-item strong{color:var(--forest)}.result-item small{color:var(--muted)}.login-page{background:var(--forest);min-height:100vh;color:var(--cream);place-items:center;padding:24px;display:grid}.login-card{background:var(--cream);width:min(100%,470px);color:var(--ink);box-shadow:12px 12px 0 var(--gold);border-radius:20px;padding:30px}.login-card h1{margin:28px 0 10px;font-size:44px}.login-card .brand{color:var(--ink)}.login-card__back{color:var(--muted);margin-top:24px;font-size:12px;font-weight:800;display:inline-block}.finale-shell{padding-bottom:80px}.finale-hero{min-height:390px;padding:55px 0 45px;position:relative;overflow:hidden}.finale-hero h1{margin:20px 0;font-size:clamp(48px,10vw,94px)}.finale-hero p{color:var(--muted);max-width:380px;line-height:1.5}.finale-hero__art{width:280px;position:absolute;top:25px;right:4%;transform:rotate(8deg)}.winner-card{z-index:1;background:var(--forest);color:var(--cream);border-color:var(--forest);box-shadow:9px 9px 0 var(--gold);justify-content:space-between;align-items:center;gap:20px;margin-top:-1px;padding:24px 28px;display:flex;position:relative}.winner-card .section-kicker{color:var(--lime)}.winner-card h2{margin:8px 0;font-size:clamp(30px,6vw,52px)}.winner-card p{color:#c8d8c2;font-size:12px}.winner-card>strong{color:var(--gold);font:60px Georgia,serif}.winner-card>strong small{color:var(--cream);font:12px Trebuchet MS,sans-serif}.finale-grid{grid-template-columns:1.1fr .9fr;gap:18px;margin-top:30px;display:grid}.finale-section{margin-top:30px;padding:24px}.finale-grid .finale-section{margin-top:0}.finale-section h2{margin:8px 0 18px}.finale-score-list{display:grid}.finale-score-row{border-top:1px solid var(--line);grid-template-columns:33px 1fr auto;align-items:center;gap:10px;min-height:45px;display:grid}.finale-score-row>span{color:var(--muted);font:13px Georgia,serif}.finale-score-row strong{color:var(--gold-deep);font:25px Georgia,serif}.finale-score-row b small{color:var(--gold-deep);margin-left:4px;font-size:10px}.finale-trophy{background:var(--lime)}.finale-trophy .pineapple-mark--small{float:right;width:58px;transform:rotate(11deg)}.finale-trophy h2{max-width:200px}.finale-trophy p{color:var(--forest-soft);max-width:250px;font-size:13px;line-height:1.5}.duel-list{gap:10px;display:grid}.duel{border-top:1px solid var(--line);grid-template-columns:1.3fr .8fr 20px .8fr;align-items:center;gap:8px;padding:11px 0;font-size:12px;display:grid}.duel span{color:var(--muted)}.duel b{color:var(--forest)}.duel i{color:var(--gold-deep);text-align:center;font-style:normal}.duel strong{color:var(--coral)}.gallery{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.gallery img{object-fit:cover;border-radius:10px;width:100%;height:190px}.finale-back{margin-top:30px}.admin-shell h1{margin:44px 0 10px;font-size:clamp(42px,8vw,76px)}.admin-intro{color:var(--muted)}.admin-section{margin-top:28px;padding:22px}.admin-section h2{margin:7px 0 18px;font-size:28px}.admin-grid{grid-template-columns:1fr 1fr;gap:18px;display:grid}.admin-form{gap:12px;display:grid}.admin-form__actions{flex-wrap:wrap;gap:9px;display:flex}.check-field{color:var(--forest-soft);align-items:center;gap:9px;font-size:13px;font-weight:800;display:flex}.check-field input{width:18px;height:18px;accent-color:var(--gold-deep)}.participant-admin-list,.competition-admin-list{gap:8px;display:grid}.participant-admin-row,.competition-admin-row{border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:12px;display:grid}.participant-admin-row__name{font-weight:800}.participant-admin-row__name small{color:var(--gold-deep);margin-left:5px;font-size:10px}.row-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.row-actions button{border:1px solid var(--line);background:var(--paper);min-height:32px;color:var(--forest);border-radius:7px;padding:0 9px;font-size:11px;font-weight:800}.row-actions button.danger{color:#a64c3a}.admin-select{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:7px;padding:8px;font-size:12px}.admin-message{color:var(--forest-soft);margin-top:12px;font-size:13px;font-weight:800}.admin-error{color:#a64c3a;margin-top:12px;font-size:13px;font-weight:800}.admin-completion{border-top:1px solid var(--line);gap:9px;margin-top:10px;padding-top:10px;display:grid}.admin-completion select,.admin-completion input{border:1px solid var(--line);background:var(--paper);width:100%;color:var(--ink);border-radius:7px;padding:8px;font-size:12px}.avatar-upload{color:var(--gold-deep);cursor:pointer;margin-left:8px;font-size:10px;display:inline-flex}.avatar-upload input{opacity:0;width:1px;height:1px;position:absolute}.admin-expand{cursor:pointer;background:0 0;border:0;margin-top:9px;padding:0;font-size:11px}@media (min-width:720px){.identity-chip{display:inline-flex}.login-panel{padding:32px}}@media (max-width:719px){.landing__hero{grid-template-columns:1fr .65fr;gap:10px;padding-top:35px}.hero-art{min-height:230px}.sun{width:180px;height:180px}.hero-art .pineapple-mark{width:160px}.landing__footer{flex-direction:column}.dashboard__intro{display:block}.trophy-card{width:fit-content;margin-top:32px}.dashboard__grid,.detail-layout,.admin-grid,.finale-grid{grid-template-columns:1fr}.detail-header{padding-top:30px}.competition-card{grid-template-columns:47px 1fr 16px;gap:11px;padding:13px}.competition-card__number{width:42px;height:42px;font-size:16px}.competition-card h3{font-size:18px}.competition-card__result{flex-direction:column;gap:3px}.section-heading__note,.topbar__actions .button--ghost:first-child{display:none}.finale-hero{min-height:370px}.finale-hero__art{opacity:.9;width:180px;top:165px;right:-2px}.winner-card{padding:20px}.winner-card>strong{font-size:42px}.duel{grid-template-columns:1fr .7fr 15px .7fr;font-size:10px}.gallery{grid-template-columns:repeat(2,1fr)}.gallery img{height:130px}}
