:root{--cream: #f8f4ec;--cream-deep: #efe6d6;--ink: #2a241c;--ink-soft: #5c5348;--accent: #8b5e3c;--line: rgba(42, 36, 28, .12);--shadow: 0 12px 40px rgba(42, 36, 28, .08);--content-max: 720px;--bracket-row: .81rem;--bracket-rows: 30;--sidebar-width: 280px;--layout-gap: 1.5rem;--wc-gold: #c9a227;--wc-gold-soft: rgba(201, 162, 39, .16);--wc-green: #1a6b4a;--wc-green-soft: rgba(26, 107, 74, .14);--wc-magenta: #d4145a;--wc-magenta-soft: rgba(212, 20, 90, .12);--surface: #fff9f0}*{box-sizing:border-box}html{scroll-padding-bottom:calc(var(--prompt-dock-h, 240px) + 1rem)}html,body{margin:0;min-height:100%;background:var(--cream);color:var(--ink);font-family:"Source Serif 4",Georgia,Times New Roman,serif;font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}body{overflow-y:auto}#app{min-height:100vh}.app-frame{width:min(var(--content-max),calc(100% - 2.5rem));margin:0 auto;padding:1.75rem 0 calc(var(--prompt-dock-h, 240px) + 2rem)}.page-layout{position:relative}.shell{width:100%;min-width:0}#sidebar-host{position:fixed;top:var(--sidebar-top, 6.5rem);left:calc(50% + min(var(--content-max),100% - 2.5rem) / 2 + var(--layout-gap));width:var(--sidebar-width);z-index:10}.sidebar,.sidebar-main{display:flex;flex-direction:column;gap:.85rem}.sidebar-meta{margin-top:.5rem;display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.sidebar-meta-line{margin:0;display:flex;flex-direction:column;gap:.1rem;width:100%}.sidebar-meta-label{font-size:.65rem;color:#5c534873}.sidebar-meta-value{font-size:.7rem;color:#5c53488c;line-height:1.35}.sidebar-box{border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow);padding:1rem 1.05rem}.sidebar-heading{font-family:Lora,Georgia,serif;font-weight:500;font-size:.92rem;margin:0 0 .55rem;letter-spacing:.01em}.sidebar-caption{margin:-.25rem 0 .65rem;font-size:.72rem;color:var(--ink-soft);line-height:1.35}.sidebar-stat{font-family:Lora,Georgia,serif;font-size:2rem;font-weight:600;margin:0;color:var(--wc-gold);font-variant-numeric:tabular-nums;line-height:1.1}.sidebar-scenario-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.sidebar-scenario{list-style:none}.sidebar-scenario-link{display:flex;gap:.55rem;align-items:flex-start;text-decoration:none;color:inherit}.sidebar-scenario-link:hover .sidebar-scenario-prompt{color:var(--accent)}.sidebar-scenario.is-active .sidebar-scenario-prompt{font-weight:600}.sidebar-scenario-rank{flex-shrink:0;width:1.35rem;height:1.35rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--wc-gold-soft);color:var(--wc-gold);font-size:.68rem;font-weight:600;font-variant-numeric:tabular-nums}.sidebar-scenario-body{min-width:0;flex:1}.sidebar-scenario-prompt{margin:0 0 .15rem;font-size:.76rem;line-height:1.3;color:var(--ink)}.sidebar-scenario-rmse{font-size:.68rem;color:var(--accent);font-weight:600;font-variant-numeric:tabular-nums}.sidebar-empty{margin:0;font-size:.78rem;color:var(--ink-soft);line-height:1.4}.dock-layout{position:fixed;left:50%;bottom:0;transform:translate(-50%);width:min(var(--content-max),calc(100% - 2.5rem));padding:0 0 calc(1rem + env(safe-area-inset-bottom,0px));z-index:20;pointer-events:none}@media(max-width:980px){.page-layout{display:flex;flex-direction:column}#sidebar-host{position:static;top:auto;left:auto;width:100%;height:auto;margin-bottom:1.25rem;order:-1}.sidebar-main{flex-direction:row;flex-wrap:wrap}.sidebar-box{flex:1 1 220px}.sidebar-meta{width:100%}}.masthead{margin-bottom:1.75rem}.masthead-main{display:flex;align-items:center;gap:1rem}.masthead-home{flex-shrink:0;display:block;text-decoration:none;color:inherit;border-radius:.35rem;transition:opacity .15s ease}.masthead-home:hover{opacity:.82}.masthead-copy{flex:1;min-width:0}.masthead-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.wc-logo{flex-shrink:0;display:block;width:64px;height:64px;object-fit:contain;border-radius:6px}.powered-by{flex-shrink:0;display:inline-flex;align-items:center;gap:.35rem;text-decoration:none;color:var(--ink-soft);font-size:.72rem;letter-spacing:.02em;white-space:nowrap;transition:color .2s ease}.powered-by:hover{color:var(--ink)}.powered-by img{display:block;height:14px;width:auto}.masthead h1{font-family:Lora,Georgia,serif;font-weight:500;font-size:1.65rem;letter-spacing:-.02em;margin:0;min-width:0}.masthead-title-link{color:inherit;text-decoration:none;transition:opacity .15s ease}.masthead-title-link:hover{opacity:.82}.masthead .tagline{margin:.35rem 0 0;color:var(--ink-soft);font-size:.95rem}.site-nav{display:flex;flex-wrap:wrap;gap:.65rem 1rem;margin-top:.65rem}.site-nav-link{font-size:.82rem;color:var(--ink-soft);text-decoration:none;border-bottom:1px solid transparent;transition:color .15s ease,border-color .15s ease}.site-nav-link:hover,.site-nav-link.is-active{color:var(--accent);border-bottom-color:currentColor}.static-page-title{font-family:Lora,Georgia,serif;font-weight:500;font-size:1.2rem;margin:0}.app-frame--static{padding-bottom:2rem}.prediction-block{margin-bottom:2.25rem}.prediction-title{font-family:Lora,Georgia,serif;font-weight:500;font-size:1.2rem;margin:0 0 1.25rem;letter-spacing:.01em}.prediction-title span{transition:opacity .45s ease}.prediction-title span.is-hidden{display:none}.subsection{margin-bottom:2rem}.subsection:last-child{margin-bottom:0}.subsection h3{font-family:Lora,Georgia,serif;font-weight:500;font-size:1.05rem;margin:0 0 .75rem;letter-spacing:.01em;color:var(--ink)}.prose{margin:0 0 1rem;color:var(--ink)}.prose .team-badge{font-size:.88em;vertical-align:.06em}.answer-panel{position:relative;margin-bottom:1.75rem;padding:1.1rem 2.4rem 1.1rem 1.25rem;border:1px solid var(--line);border-left:3px solid var(--wc-green);border-radius:14px;background:var(--wc-green-soft);box-shadow:var(--shadow);animation:answer-rise .35s ease}@keyframes answer-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.answer-question{margin:0 0 .55rem;font-family:Lora,Georgia,serif;font-size:1rem;font-weight:500;color:var(--ink)}.answer-question:before{content:"You asked";display:block;font-family:inherit;font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--wc-green);margin-bottom:.2rem}.answer-text{margin:0;color:var(--ink)}.answer-context{margin:.55rem 0 0;font-size:.72rem;color:var(--ink-soft)}.answer-close{position:absolute;top:.5rem;right:.6rem;width:1.6rem;height:1.6rem;padding:0;border:none;border-radius:50%;background:transparent;color:var(--ink-soft);font-size:1.2rem;line-height:1;cursor:pointer;transition:background .2s ease,color .2s ease}.answer-close:hover{background:#2a241c14;color:var(--ink)}.chart-shell{--chart-surface: #fff9f0;border:1px solid var(--line);border-radius:14px;background:var(--chart-surface);padding:.5rem;box-shadow:var(--shadow);min-height:360px}.chart-shell.has-chart-tabs{padding-top:.55rem;padding-left:.55rem}.chart-shell.is-heat-tab{min-height:1240px}.chart-shell.is-groups-tab{min-height:520px}.chart-shell.is-bracket-tab{min-height:calc(var(--bracket-row) * var(--bracket-rows) + 4.5rem);padding-left:.2rem;padding-right:.2rem}.chart-shell.is-comparison-tab{min-height:1000px}.chart-panel,.chart-body{position:relative}.chart-view luzmo-embed-viz-item{background:var(--chart-surface)}.chart-tabs{position:absolute;top:0;left:0;z-index:2;display:inline-flex;gap:.12rem;padding:.16rem;border-radius:999px;background:#e6dcc8}.chart-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--ink);font:inherit;font-size:.7rem;line-height:1.2;letter-spacing:.01em;padding:.26rem .62rem;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .15s ease,box-shadow .15s ease}.chart-tab:hover:not(.is-active){background:#ffffff59}.chart-tab.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 3px #2a241c1a,0 0 0 1px #2a241c0a}.chart-shell.has-chart-tabs .chart-body{padding-top:2.15rem}.chart-view--heat{min-height:1200px}.chart-view--comparison{min-height:960px}.chart-view{width:100%}.chart-view--groups{padding:.15rem .1rem .35rem}.groups-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1.1rem 1.35rem}.group-card{min-width:0}.group-card-title{margin:0 0 .3rem;padding:0;font-family:Lora,Georgia,serif;font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--ink-soft)}.group-table{width:100%;border-collapse:collapse;font-size:.7rem;line-height:1.3}.group-table th,.group-table td{padding:.18rem .22rem;text-align:center;border:none}.group-table th{font-weight:500;color:var(--ink-soft);font-size:.6rem;letter-spacing:.04em;text-transform:uppercase}.stat-abbr{cursor:help;text-decoration:underline dotted;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);text-underline-offset:.15em}.group-table td.group-team{text-align:left;min-width:6rem}.group-table .team-inline{gap:.25rem}.group-table .team-name{font-size:.92em;font-weight:500}.group-table tbody tr:not(.group-row--advances) .group-team .team-name{color:var(--ink-soft)}.group-row--advances .group-pos,.group-row--advances .group-pts{color:var(--wc-green);font-weight:700}.group-row--advances .group-team .team-name{color:var(--ink);font-weight:600;text-decoration:underline;text-decoration-color:#1a6b4a8c;text-decoration-thickness:1px;text-underline-offset:.14em}.group-gd,.group-pts{font-variant-numeric:tabular-nums}.team-inline{display:inline-flex;align-items:center;gap:.3rem;min-width:0}.team-inline .team-flag{flex-shrink:0;font-size:.95em;line-height:1}.team-inline .team-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-view--bracket{padding:.1rem 0 .3rem;overflow:hidden}.bracket-tree{display:grid;grid-template-columns:minmax(0,1fr) minmax(3rem,3.75rem) minmax(0,1fr);align-items:start;gap:0;width:100%;padding:0 1.75rem}.bracket-half{min-width:0}.bracket-cols{position:relative;height:calc(var(--bracket-row) * var(--bracket-rows) + 1rem)}.bracket-col{position:absolute;top:0;min-width:0}.bracket-half--left .bracket-col--depth-0{left:0;width:38%}.bracket-half--left .bracket-col--depth-1{left:19%;width:38%}.bracket-half--left .bracket-col--depth-2{left:42%;width:30%}.bracket-half--left .bracket-col--depth-3{left:64%;width:30%}.bracket-half--right .bracket-col--depth-0{right:0;width:38%}.bracket-half--right .bracket-col--depth-1{right:19%;width:38%}.bracket-half--right .bracket-col--depth-2{right:42%;width:30%}.bracket-half--right .bracket-col--depth-3{right:64%;width:30%}.bracket-round-label{display:block;margin-bottom:.15rem;font-family:Lora,Georgia,serif;font-size:.5rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);text-align:center;white-space:nowrap}.bracket-round-label--center{position:static;display:block;width:auto;margin:0 0 .15rem;transform:none;text-align:center}.bracket-pitch{position:relative;height:calc(var(--bracket-row) * var(--bracket-rows))}.bracket-pitch--center{height:calc(var(--bracket-row) * var(--bracket-rows))}.bracket-node{position:absolute;left:0;right:0;min-width:0;transform:translateY(-50%)}.bracket-node--leaf{transform:none;height:calc(var(--bracket-row) * 2)}.bracket-half--right .team-inline{flex-direction:row-reverse}.bracket-fixture{width:100%;min-width:0;line-height:1.1}.bracket-node--leaf .bracket-fixture{display:grid;grid-template-rows:1fr 1fr;height:100%}.bracket-node--leaf .bracket-team{align-self:center}.bracket-team{display:flex;align-items:center;gap:.16rem;padding:0;min-width:0}.bracket-half--left .bracket-team{justify-content:flex-start}.bracket-half--right .bracket-team{justify-content:flex-end}.bracket-team .team-inline{flex:0 1 auto}.bracket-team .bracket-score{flex:0 0 auto}.bracket-team .team-inline{gap:.14rem;min-width:0;overflow:hidden}.bracket-team .team-flag{font-size:.65em;flex-shrink:0}.bracket-team .team-name{font-family:"Source Serif 4",Georgia,serif;font-size:.54rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bracket-team.is-winner .team-name{font-weight:600;color:var(--ink);text-decoration:underline;text-decoration-color:#1a6b4a80;text-underline-offset:.1em}.bracket-team:not(.is-winner) .team-name,.bracket-team:not(.is-winner) .bracket-score{color:var(--ink-soft)}.bracket-score{font-family:Lora,Georgia,serif;font-size:.48rem;font-variant-numeric:tabular-nums;flex-shrink:0;min-width:.4rem;text-align:center}.bracket-team.is-winner .bracket-score{font-weight:600;color:var(--ink)}.bracket-center{min-width:0}.bracket-pitch--center .bracket-node{left:0;right:0;transform:translateY(-50%)}.bracket-third-place{margin-top:calc(var(--bracket-row) * -5);min-width:0;padding-top:.15rem;border-top:1px solid var(--line)}.bracket-third-place .bracket-fixture{margin:0 auto;width:100%}.chart-hint{margin:.75rem 1rem 0;font-size:.82rem;color:var(--ink-soft)}.matchday-label{font-size:.86rem;color:var(--ink-soft);margin:0 0 .85rem}.match-day-header{font-family:Lora,Georgia,serif;font-size:.92rem;font-weight:600;color:var(--ink);margin:.35rem 0 .15rem}.match-day-header:first-child{margin-top:0}.match-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.65rem}.match-empty{font-size:.86rem;color:var(--ink-soft)}.match-card{display:flex;align-items:stretch;gap:0;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}.match-score{display:flex;align-items:center;justify-content:center;min-width:3rem;width:3rem;font-family:Lora,Georgia,serif;font-size:1.35rem;font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0}.match-score--home{border-right:1px solid var(--line)}.match-score--away{border-left:1px solid var(--line)}.match-score--win{background:linear-gradient(135deg,var(--wc-green-soft),rgba(26,107,74,.28));color:var(--wc-green)}.match-score--lose{background:linear-gradient(135deg,var(--wc-magenta-soft),rgba(212,20,90,.22));color:var(--wc-magenta)}.match-score--draw{background:linear-gradient(135deg,var(--wc-gold-soft),rgba(201,162,39,.28));color:var(--wc-gold)}.match-body{flex:1;min-width:0;padding:.75rem .85rem;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(180deg,rgba(201,162,39,.06),transparent)}.match-card--draw .match-body,.match-card--predicted-draw .match-body{background:linear-gradient(180deg,#c9a22724,#c9a2270a)}.match-teams{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.35rem .5rem;font-family:Lora,Georgia,serif;font-size:.95rem;margin-bottom:.2rem;text-align:center;line-height:1.35}.match-slot-team{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.3rem .35rem}.match-slot-code{display:inline-flex;align-items:center;padding:.12rem .45rem;border:1px dashed rgba(42,36,28,.22);border-radius:999px;background:#ffffff73;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--ink-soft)}.match-slot-arrow{color:#5c534880;font-size:.82rem}.match-slot-likely{display:inline-flex;align-items:center;gap:.3rem}.match-slot-likely-label{font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#5c5348b8}.match-divider{color:#5c534873;font-size:.82em}.team-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .5rem .1rem .38rem;border:1px solid rgba(42,36,28,.16);border-radius:999px;background:#ffffffb8;line-height:1.2;white-space:nowrap}.team-flag{display:inline-flex;align-items:center;justify-content:center;font-size:.92em;line-height:1}.team-name{font-family:"Source Serif 4",Georgia,serif;font-size:.92em;color:var(--ink);font-weight:600}.team-name--plain{font-family:Lora,Georgia,serif;font-size:.9rem;color:var(--ink)}.match-meta{font-size:.8rem;color:var(--ink-soft);text-align:center}.match-schedule{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.2rem .35rem;margin-bottom:.15rem;line-height:1.35}.match-schedule-sep{opacity:.55}.match-kickoff{font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink)}.match-venue{opacity:.9}.match-odds{opacity:.85}@media(max-width:400px){.match-card{flex-wrap:wrap}.match-score{width:50%;min-width:0;padding:.5rem}.match-score--home{border-right:none;border-bottom:1px solid var(--line)}.match-score--away{border-left:none;border-bottom:1px solid var(--line)}.match-body{width:100%;order:3}}.prompt-dock{width:100%;padding:.75rem 0 0;background:linear-gradient(180deg,rgba(248,244,236,0) 0%,rgba(248,244,236,.92) 18%,var(--cream) 36%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto}.quick-picks{display:flex;flex-direction:column;gap:.45rem;margin-bottom:.65rem}.quick-picks button{border:1px solid var(--line);background:#ffffff8c;color:var(--ink-soft);border-radius:999px;padding:.45rem .85rem;font-family:inherit;font-size:.78rem;text-align:left;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.quick-picks button.pick-gold:hover{background:var(--wc-gold-soft);border-color:var(--wc-gold);color:var(--ink);box-shadow:0 0 0 1px #c9a22733}.quick-picks button.pick-green:hover{background:var(--wc-green-soft);border-color:var(--wc-green);color:var(--ink);box-shadow:0 0 0 1px #1a6b4a2e}.quick-picks button.pick-magenta:hover{background:var(--wc-magenta-soft);border-color:var(--wc-magenta);color:var(--ink);box-shadow:0 0 0 1px #d4145a29}.prompt-form{display:flex;gap:.5rem;align-items:stretch}.prompt-form input{flex:1;border:1px solid var(--line);border-radius:18px;padding:.85rem 1rem;font-family:inherit;font-size:.95rem;background:#fff;color:var(--ink);box-shadow:var(--shadow)}.prompt-form input:focus{outline:2px solid rgba(139,94,60,.25);outline-offset:1px}.prompt-form button[type=submit]{border:none;border-radius:18px;padding:0 1rem;background:var(--ink);color:var(--cream);font-family:Lora,Georgia,serif;font-size:.9rem;cursor:pointer}.prompt-form button[type=submit]:disabled{opacity:.45;cursor:wait}.content-pane{transition:opacity .5s ease}.content-pane.is-loading{opacity:.55}.loader{display:flex;align-items:center;gap:.7rem;margin:0 0 1.25rem;color:var(--ink-soft);font-size:.9rem}.loader[hidden]{display:none}.loader-spinner{flex-shrink:0;width:1.2rem;height:1.2rem;border:2px solid rgba(42,36,28,.12);border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}.loader-label{line-height:1.4}.error-banner{font-size:.86rem;color:#8a3b2c;margin:0 0 1rem;padding:.65rem .85rem;border-radius:10px;background:#8a3b2c12;border:1px solid rgba(138,59,44,.15)}.error-banner[hidden]{display:none}@keyframes spin{to{transform:rotate(360deg)}}.fade-swap{animation:fadeIn .55s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
