:root{--bg-deep: #09070f;--bg-midnight: #12111f;--bg-panel: #171428;--bg-panel-soft: #201a34;--ink-primary: #f7f2de;--ink-secondary: #d9d0b0;--ink-muted: #a89f84;--gold-bright: #e8c770;--gold-core: #cba654;--gold-shadow: #6f4f1f;--lapis: #4f8ca8;--teal-glow: #68d1c9;--danger: #ff8b8b;--radius-sm: .5rem;--radius-md: .9rem;--radius-lg: 1.2rem;--shadow-soft: 0 14px 30px rgb(0 0 0 / .35);--shadow-panel: 0 20px 42px rgb(0 0 0 / .45), inset 0 0 0 1px rgb(232 199 112 / .18);--line-metal: linear-gradient( 90deg, rgb(106 81 36 / .2), rgb(232 199 112 / .75), rgb(106 81 36 / .2) );font-family:Inter,Avenir Next,Segoe UI,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color:var(--ink-primary);background:var(--bg-deep);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 18% 20%,rgb(104 209 201 / .12),transparent 30%),radial-gradient(circle at 85% 5%,rgb(232 199 112 / .12),transparent 32%),linear-gradient(150deg,#050409,#0d0a17 45%,#130f21);color:var(--ink-primary)}body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgb(255 255 255 / .018) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .018) 1px,transparent 1px);background-size:28px 28px;mix-blend-mode:soft-light;opacity:.5}#root{min-height:100vh}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink-primary);letter-spacing:.03em}a{color:var(--teal-glow);text-decoration:none;transition:color .2s ease}a:hover{color:#98f6ef}button{border-radius:var(--radius-sm);border:1px solid rgb(232 199 112 / .55);padding:.6rem 1rem;font-size:.95rem;font-weight:700;letter-spacing:.02em;font-family:inherit;background:linear-gradient(180deg,#30233e,#1c182c);color:var(--ink-primary);cursor:pointer;box-shadow:inset 0 0 0 1px #ffffff14,0 8px 20px #00000040;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}button:hover:not(:disabled){transform:translateY(-1px);border-color:var(--gold-bright);box-shadow:inset 0 0 0 1px #ffffff1f,0 0 20px #68d1c93d,0 10px 24px #00000047}button:focus-visible,input:focus-visible{outline:2px solid var(--teal-glow);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.66}input{border:1px solid rgb(203 166 84 / .52);background:linear-gradient(180deg,#0b0913f2,#171428f2);color:var(--ink-primary);border-radius:var(--radius-sm);padding:.62rem .72rem}code{color:#fff2c1;background:#1d192cd9;border:1px solid rgb(203 166 84 / .28);border-radius:.36rem;padding:.1rem .34rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.home-page,.admin-page{max-width:1080px;margin:0 auto;padding:3rem 1rem 4.5rem;position:relative}.home-page{text-align:center;min-height:78vh;display:grid;place-items:center}.home-page:before{content:"";position:absolute;top:1.5rem;left:50%;transform:translate(-50%);width:min(560px,92vw);height:1px;background:var(--line-metal)}.home-page>*:not(.admin-link){width:min(580px,100%)}.home-page h1{font-size:clamp(2.2rem,6vw,3.8rem);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.14em;text-shadow:0 0 14px rgb(232 199 112 / .3),0 0 35px rgb(104 209 201 / .24)}.home-page h1:after{content:"";display:block;width:88px;height:36px;margin:.85rem auto 0;border:2px solid rgb(203 166 84 / .68);border-radius:999px;box-shadow:0 0 18px #68d1c933}.subhead{margin-bottom:2.2rem;color:var(--ink-secondary);font-size:1.05rem;letter-spacing:.02em;position:relative}.subhead:before,.subhead:after{content:"";position:absolute;top:50%;width:70px;height:1px;background:var(--line-metal)}.subhead:before{right:calc(100% + .7rem)}.subhead:after{left:calc(100% + .7rem)}.admin-link{position:fixed;top:.9rem;right:.95rem;z-index:10;display:inline-flex;align-items:center;justify-content:center;min-width:62px;padding:.3rem .5rem;border:1px solid rgb(232 199 112 / .35);border-radius:999px;background:linear-gradient(180deg,#161121c2,#0c0a15c2);color:var(--ink-secondary);text-transform:uppercase;letter-spacing:.12em;font-size:.66rem;font-weight:800;opacity:.45;box-shadow:0 8px 18px #00000042;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,opacity .16s ease,color .16s ease}.admin-link:hover{transform:translateY(-1px);border-color:var(--gold-bright);color:var(--ink-primary);opacity:.96;box-shadow:0 0 0 1px #e8c77033,0 0 16px #68d1c91f,0 10px 22px #0000004d}.home-gallery-page{text-align:left;min-height:100vh;display:block}.home-gallery-page>*:not(.admin-link){width:100%}.home-gallery-page h1{text-align:center}.home-gallery-page .subhead{text-align:center;margin-bottom:1.5rem}.home-gallery-locked{width:min(720px,100%);margin:1.6rem auto 0;text-align:center;border:1px solid rgb(203 166 84 / .5);border-radius:var(--radius-lg);padding:1rem 1.2rem;background:radial-gradient(circle at top right,rgb(104 209 201 / .12),transparent 42%),linear-gradient(180deg,#171122f2,#0e0b19f2);box-shadow:var(--shadow-panel)}.winner-gallery-section{margin-top:.8rem}.winner-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem}.winner-gallery-card{border:1px solid rgb(203 166 84 / .44);border-radius:var(--radius-md);overflow:hidden;background:linear-gradient(180deg,#171122f7,#0d0a17fa),radial-gradient(circle at top right,rgb(104 209 201 / .1),transparent 40%);box-shadow:var(--shadow-soft)}.winner-gallery-image-shell{width:100%;aspect-ratio:1 / 1;background:linear-gradient(145deg,#21182dfa,#110d1bfa);border-bottom:1px solid rgb(203 166 84 / .4)}.winner-gallery-image-shell img{width:100%;height:100%;object-fit:cover;display:block}.winner-gallery-placeholder{width:100%;height:100%;display:grid;place-items:center;color:var(--ink-secondary);font-size:.9rem;letter-spacing:.04em;text-transform:uppercase}.winner-gallery-card-body{padding:.75rem;display:grid;gap:.55rem}.winner-gallery-meta-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem;color:var(--ink-muted);font-size:.78rem}.status-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.12rem .48rem;text-transform:uppercase;letter-spacing:.08em;font-size:.64rem;border:1px solid rgb(203 166 84 / .6)}.status-ready{color:#d7f8e5;border-color:#70dca38c;background:#2d5f4842}.status-pending{color:#fff5d0;border-color:#e8c770b3;background:#694f2533}.status-failed{color:#ffd4d4;border-color:#ff8b8bad;background:#6a2c2c38}.winner-gallery-champion{margin:0;font-size:.84rem;color:var(--ink-secondary)}.winner-gallery-prompt{margin:0;font-size:.82rem;color:var(--ink-secondary);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}.winner-gallery-error{margin-top:0;margin-bottom:0;font-size:.78rem}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem;padding-bottom:.8rem;position:relative}.admin-header-actions{display:inline-flex;align-items:center;gap:.6rem}.admin-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line-metal)}.admin-header h1{margin-bottom:0;letter-spacing:.09em;text-transform:uppercase;font-size:clamp(1.45rem,3.8vw,2rem)}.admin-login-page{min-height:100vh;display:grid;align-content:center;justify-items:center;gap:.85rem;text-align:center}.admin-login-page h1{margin-bottom:.2rem;text-transform:uppercase;letter-spacing:.08em}.error-text{color:var(--danger);margin:.75rem 0 1rem}.tournament-selector-row,.match-picker-row{margin-bottom:1rem}.tournament-selector-row label,.match-picker-row label{display:inline-flex;flex-direction:column;gap:.35rem;color:var(--ink-secondary)}.tournament-selector-row select,.match-picker-row select{min-width:320px;max-width:100%}.tournament-meta-card{border:1px solid rgb(203 166 84 / .42);border-radius:var(--radius-md);padding:.8rem 1rem;margin-bottom:1rem;background:radial-gradient(circle at top right,rgb(104 209 201 / .1),transparent 46%),linear-gradient(180deg,#161121f2,#0e0b18f2);box-shadow:var(--shadow-soft)}.tournament-meta-card p{margin:.3rem 0;color:var(--ink-secondary)}.bracket-section{margin-bottom:1.2rem}.bracket-section h2{margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.07em;font-size:1.05rem}.bracket-wrapper{border:1px solid rgb(203 166 84 / .36);border-radius:var(--radius-lg);background:radial-gradient(circle at top right,rgb(104 209 201 / .1),transparent 45%),linear-gradient(180deg,#181224fa,#0e0b18fa);box-shadow:var(--shadow-panel);overflow:auto;padding:.45rem}.bracket-board{display:grid;gap:1rem}.bracket-lane{border:1px solid rgb(203 166 84 / .26);border-radius:var(--radius-md);padding:.55rem;background:linear-gradient(180deg,#100c1b8c,#0c0a1580)}.bracket-lane-scroll{overflow-x:auto;overflow-y:hidden;padding-bottom:.3rem}.bracket-column-title{margin:.2rem 0 .6rem;font-size:.9rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-secondary)}.grand-final-title{margin:0;font-size:.86rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.grand-final-series{margin-top:1rem;padding-top:.9rem;border-top:1px solid rgb(203 166 84 / .36);display:grid;gap:.8rem}.grand-final-series-header{display:grid;gap:.25rem}.grand-final-finalists{margin:0;font-weight:600;color:#f7e8b9}.grand-final-score,.grand-final-empty,.grand-final-champion{margin:0;color:var(--ink-secondary);font-size:.86rem}.grand-final-champion{color:#f6e5a9}.grand-final-games{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.7rem}.grand-final-game-button{width:100%;min-height:82px}.grand-final-placeholder{cursor:default;opacity:.8}.bracket-match-button{width:180px;min-height:70px;border:1px solid rgb(203 166 84 / .5);border-radius:8px;background:linear-gradient(180deg,#1a1427fa,#100c1afa),radial-gradient(circle at top right,rgb(104 209 201 / .12),transparent 42%);color:var(--ink-secondary);display:grid;text-align:left;gap:.2rem;padding:.35rem .45rem;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.bracket-match-button strong{color:#f5e1a6;font-size:.7rem;letter-spacing:.06em}.bracket-match-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem}.bracket-match-header{display:flex;align-items:center;justify-content:space-between;gap:.4rem}.bracket-status-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.1rem .42rem;text-transform:uppercase;letter-spacing:.07em;font-size:.58rem;border:1px solid rgb(203 166 84 / .6)}.status-completed{color:#e7ffe2;border-color:#70dca3a8;background:#2e624a4d}.bracket-team-row{display:flex;align-items:center;justify-content:space-between;gap:.45rem}.bracket-team-row.winner{color:#fff4cb}.bracket-winner-mark{color:#f7e7ae;font-style:normal;font-size:.58rem;letter-spacing:.07em}.bracket-match-button:hover{transform:translateY(-1px);border-color:var(--gold-bright);box-shadow:0 0 16px #68d1c933}.bracket-match-button.selected{border-color:#e8c770f5;box-shadow:0 0 0 1px #e8c77057,0 0 18px #68d1c93d}.games-list{display:flex;flex-direction:column;gap:1.2rem}.game-card{border:1px solid rgb(203 166 84 / .5);border-radius:var(--radius-lg);padding:1.1rem;background:radial-gradient(circle at 16% 15%,rgb(104 209 201 / .08),transparent 24%),linear-gradient(175deg,#1a1427fa,#110d1cfa);box-shadow:var(--shadow-panel);position:relative;overflow:hidden}.game-card:before{content:"";position:absolute;inset:10px;border:1px solid rgb(232 199 112 / .18);border-radius:calc(var(--radius-lg) - .4rem);pointer-events:none}.game-card:after{content:"";position:absolute;top:-28px;right:-30px;width:130px;height:130px;border:2px solid rgb(104 209 201 / .28);border-radius:50%;opacity:.35;pointer-events:none}.game-card-header h2{margin:0;text-transform:uppercase;letter-spacing:.08em;color:#fdf3ce}.game-card-header p{margin:.25rem 0;color:var(--ink-secondary)}.timeline{margin-top:1.1rem;position:relative}.timeline:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:repeating-linear-gradient(to bottom,#e8c770b8,#e8c770b8 10px,#e8c77038 10px 18px);transform:translate(-1px)}.timeline-row{display:grid;grid-template-columns:1fr 170px 1fr;gap:1rem;align-items:start;margin:1.15rem 0;position:relative}.timeline-side{min-height:12px}.timeline-left{text-align:right}.timeline-right{text-align:left}.timeline-center{display:flex;justify-content:center}.timeline-node{font-size:.8rem;padding:.42rem .7rem;border-radius:999px;border:1px solid rgb(203 166 84 / .7);background:radial-gradient(circle at center,rgb(104 209 201 / .2),transparent 56%),linear-gradient(180deg,#2f2113a8,#1e1428f5);letter-spacing:.05em;text-transform:uppercase;box-shadow:0 0 18px #68d1c924;animation:pulse-node 3s ease-in-out infinite}.dream-card,.judgment-card{border:1px solid rgb(203 166 84 / .46);border-radius:var(--radius-md);padding:.85rem;background:linear-gradient(180deg,#171122f5,#120e1ef7),radial-gradient(circle at top right,rgb(104 209 201 / .12),transparent 40%);box-shadow:var(--shadow-soft);position:relative}.dream-card:after,.judgment-card:after{content:"";position:absolute;top:.45rem;right:.55rem;width:8px;height:8px;border:1px solid rgb(232 199 112 / .7);transform:rotate(45deg);opacity:.85}.dream-card h3,.judgment-card h3{margin-top:0;margin-bottom:.45rem;color:#f6e6b6;letter-spacing:.04em;overflow-wrap:anywhere}.dream-card h3{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.dream-card p,.judgment-card p{margin:.5rem 0;white-space:pre-wrap;color:var(--ink-secondary);overflow-wrap:anywhere}.timeline-judgment-row .timeline-center{z-index:1;justify-content:center}.timeline-judgment-row{grid-template-columns:1fr}.timeline-judgment-row .timeline-side{display:none}.timeline-judgment-row .judgment-card{width:min(100%,740px);margin:0 auto}.winner-card{border-color:#e8c770eb;background:radial-gradient(circle at top right,rgb(104 209 201 / .22),transparent 42%),linear-gradient(180deg,#291c10f5,#181120fa);box-shadow:0 0 0 1px #e8c77057,0 0 24px #68d1c938,0 16px 28px #00000057}.winner-badge{display:inline-flex;align-items:center;padding:.2rem .5rem;border-radius:999px;border:1px solid rgb(232 199 112 / .75);background:linear-gradient(180deg,#3e2c16f2,#281b31f2);color:#fff2c3;font-size:.67rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.winner-name{color:#ffe9a2;text-shadow:0 0 10px rgb(232 199 112 / .42),0 0 18px rgb(104 209 201 / .28)}.login-form{max-width:420px;width:min(420px,100%);display:flex;flex-direction:column;gap:.75rem;padding:1rem;border-radius:var(--radius-lg);border:1px solid rgb(203 166 84 / .45);background:linear-gradient(180deg,#1a1425f5,#0f0c19f5),radial-gradient(circle at top right,rgb(104 209 201 / .12),transparent 50%);box-shadow:var(--shadow-panel)}.login-form label{display:flex;flex-direction:column;gap:.4rem;color:var(--ink-secondary);letter-spacing:.02em;text-align:left}.login-form input{width:100%}@keyframes pulse-node{0%,to{box-shadow:0 0 18px #68d1c924}50%{box-shadow:0 0 24px #68d1c93d}}@media(prefers-reduced-motion:reduce){.timeline-node{animation:none}}@media(max-width:880px){.timeline-row{grid-template-columns:1fr}.timeline:before{left:15px}.timeline-center{justify-content:flex-start}.timeline-left,.timeline-right{text-align:left}.subhead:before,.subhead:after{display:none}}@media(max-width:560px){.home-page,.admin-page{padding:2.3rem .85rem 3.2rem}.admin-login-page{min-height:calc(100vh - 1.8rem);align-content:center}.admin-link{top:.7rem;right:.7rem;min-width:56px;padding:.26rem .45rem;font-size:.62rem}.admin-header{flex-direction:column;align-items:flex-start;gap:.75rem}}
