@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/287637279c44650d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b387097da7407747-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/cb9f64d62d112b41-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_ae2eaa{font-family:Fraunces,Fraunces Fallback;font-style:normal}.__variable_ae2eaa{--font-display:"Fraunces","Fraunces Fallback"}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/_next/static/media/abfec168c8990f67-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/_next/static/media/3131c862d4942660-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/_next/static/media/6a9c36ea9dc9b36b-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/_next/static/media/e1694c6cb47c173f-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Nunito;font-style:normal;font-weight:200 1000;font-display:swap;src:url(/_next/static/media/ee40bb094c99a29a-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Nunito Fallback;src:local("Arial");ascent-override:99.71%;descent-override:34.82%;line-gap-override:0.00%;size-adjust:101.39%}.__className_eef148{font-family:Nunito,Nunito Fallback;font-style:normal}.__variable_eef148{--font-body:"Nunito","Nunito Fallback"}:root{color-scheme:dark;--bg:#1a1230;--bg-deep:#120c22;--fg:#fff6ea;--muted:#d4c4e8;--line:#4a3568;--accent:#ffb347;--accent-2:#ff7eb6;--accent-3:#7ce7c4;--glow:#ff8c5a;--card:#26183f;--error:#ff9aa8;--ok:#8fe8b8;font-family:var(--font-body),"Nunito",ui-rounded,sans-serif}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg-deep);color:var(--fg)}body{background:radial-gradient(1200px 700px at 50% -10%,color-mix(in srgb,var(--glow) 28%,transparent),transparent 62%),radial-gradient(800px 500px at 100% 100%,color-mix(in srgb,var(--accent-2) 18%,transparent),transparent 58%),radial-gradient(700px 420px at 0 80%,color-mix(in srgb,var(--accent-3) 14%,transparent),transparent 55%),var(--bg-deep)}a{color:var(--accent)}.brand,h1,h2{font-family:var(--font-display),"Fraunces",serif;font-optical-sizing:auto;font-variation-settings:"SOFT" 60,"WONK" 1}h1{font-size:2rem;font-weight:650;letter-spacing:-.03em;margin:0 0 .4rem}h1,h2{text-align:center}h2{font-size:1.2rem;font-weight:600;margin:1.6rem 0 .5rem}header,main{max-width:42rem;margin:0 auto;padding:1.5rem 1.25rem;text-align:center}body:has(.wide) header,body:has(.wide) main{max-width:68rem}header{flex-direction:column;justify-content:center;gap:.9rem;border-bottom:none}.brand,header{display:flex;align-items:center}.brand{justify-content:flex-end;width:100%;color:var(--fg);text-decoration:none}.brand-mark{display:block;width:7.4rem;height:3.1rem;background-color:currentColor;-webkit-mask:url(/threeand1-logo.svg) right center/contain no-repeat;mask:url(/threeand1-logo.svg) right center/contain no-repeat}nav{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem 1.1rem;font-size:.95rem}nav form{margin:0}nav a{color:var(--fg);text-decoration:none;border-radius:8px}nav a:hover{color:var(--accent)}nav a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.muted{color:var(--muted);text-align:center}.button,button{background:transparent;border:1px solid var(--line);color:inherit;padding:.5rem .95rem;font:inherit;cursor:pointer;border-radius:999px}.brand:focus-visible,.button:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.auth-overlay{position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem 1.25rem}.auth-backdrop{position:absolute;inset:0;background:transparent;text-indent:-9999px;overflow:hidden}.auth-modal{position:relative;z-index:1;width:min(24rem,100%);padding:1.85rem 1.6rem 1.5rem;border:1px solid color-mix(in srgb,var(--accent-2) 35%,var(--line));border-radius:28px;background:color-mix(in srgb,var(--card) 88%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent),0 24px 60px color-mix(in srgb,#000 38%,transparent),0 0 80px color-mix(in srgb,var(--glow) 18%,transparent);animation:auth-modal-in .28s ease-out;text-align:center}.auth-modal-brand{display:flex;justify-content:flex-end;width:100%;margin-bottom:1.15rem}.auth-modal h1{font-size:1.7rem;font-weight:650;letter-spacing:-.03em;margin:0 0 .45rem}.auth-modal .stack{max-width:none;width:100%;margin:1rem 0}.auth-modal .button-primary{display:inline-flex;margin:.85rem 0 .35rem}@keyframes auth-modal-in{0%{opacity:0;transform:translateY(.6rem) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.auth-modal{animation:none}.button-primary:hover{filter:none}}.button-primary{background:linear-gradient(135deg,var(--accent) 0,var(--accent-2) 100%);border-color:transparent;color:#2a1230;text-decoration:none;padding:.7rem 1.7rem;border-radius:999px;font-size:1rem;font-weight:700}.button-primary:hover{filter:brightness(1.06)}.button-primary:focus-visible{outline:2px solid var(--fg);outline-offset:3px}.stack{align-items:stretch;gap:.9rem;max-width:22rem;margin:1.25rem auto;text-align:left}.stack,.stack label{display:flex;flex-direction:column}.stack label{gap:.35rem;font-size:.9rem}.stack input,.stack select,.stack textarea{font:inherit;padding:.55rem .7rem;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg-deep) 70%,transparent);color:inherit}.stack input:focus,.stack select:focus,.stack textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:1px}.stack .button-primary,.stack button[type=submit]{align-self:center;min-width:10rem}.stack textarea{resize:vertical}.stack.form-wide{max-width:40rem}.stack fieldset{border:1px solid var(--line);border-radius:16px;padding:.85rem 1rem 1rem;display:flex;flex-direction:column;gap:.85rem}.stack legend{padding:0 .35rem;font-weight:600}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:.85rem;gap:.85rem}@media (max-width:40rem){.form-grid{grid-template-columns:1fr}}.tabs{display:flex;justify-content:center;gap:.75rem;margin:0 0 1.25rem;border-bottom:1px solid var(--line)}.tabs a{padding:.45rem .1rem .55rem;text-decoration:none;color:var(--muted);border-bottom:2px solid transparent}.tabs a.active{color:var(--fg);border-bottom-color:var(--accent)}.product-grid{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));grid-gap:1.25rem;gap:1.25rem;text-align:left}.product-card{display:block;color:inherit;text-decoration:none}.product-card img,.product-detail img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--fg) 4%,var(--bg))}.product-card h2{font-size:1.05rem;margin:.7rem 0 .2rem;text-align:left}.product-detail-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-gap:1.75rem;gap:1.75rem;align-items:start}@media (max-width:48rem){.product-detail-grid{grid-template-columns:1fr}}.product-price{font-size:1.25rem;margin:.35rem 0 1rem}.product-detail .button-primary{margin-top:.35rem}.product-meta{display:grid;grid-template-columns:1fr 1fr;grid-gap:.75rem 1.25rem;gap:.75rem 1.25rem;margin:1.25rem 0;text-align:left}.product-meta dt{font-size:.8rem;color:var(--muted)}.product-meta dd{margin:.15rem 0 0}.admin-product-list{padding-left:1.1rem;text-align:left}.admin-cards{list-style:none;padding:0;margin:1.5rem 0 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));grid-gap:1rem;gap:1rem}.admin-card{display:block;color:inherit;text-decoration:none;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--card) 70%,transparent);text-align:left}.admin-card h2{margin:0 0 .4rem;font-size:1.1rem;text-align:left}.user-manager{list-style:none;padding:0;margin:1.25rem 0 0;display:flex;flex-direction:column;gap:1.25rem}.user-card{border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem 1.1rem;text-align:left}.user-card-head{display:flex;flex-wrap:wrap;gap:.5rem .85rem;align-items:baseline;margin-bottom:.75rem}.user-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.35rem}button.danger{border-color:var(--error);color:var(--error)}.field-hint{font-size:.78rem}.error,.ok{text-align:center}.error{color:var(--error)}.ok{color:var(--ok)}.trips-page{text-align:left}.trips-page>.error,.trips-page>.muted,.trips-page>h1{text-align:center}.trips-board{display:grid;grid-template-columns:1fr;grid-gap:1.25rem;gap:1.25rem;margin:1.4rem 0 0;align-items:start}.trips-col{padding:1rem 1rem 1.15rem;border:1px solid var(--line);background:color-mix(in srgb,var(--card) 70%,transparent)}.trips-col h2{margin-top:0}.trips-col .muted,.trips-col h2{text-align:left}@media (min-width:720px){.trips-board{grid-template-columns:minmax(16rem,.95fr) minmax(18rem,1.15fr)}}.trip-form{max-width:none}.place-search{position:relative}.place-suggestions{position:absolute;z-index:8;left:0;right:0;top:calc(100% + .2rem);margin:0;padding:.25rem 0;list-style:none;border:1px solid var(--line);background:var(--card);max-height:14rem;overflow:auto;text-align:left}.place-suggestions button{display:flex;flex-direction:column;gap:.1rem;width:100%;text-align:left;border:0;border-radius:0;padding:.45rem .7rem}.place-suggestions button:hover,.place-suggestions button[aria-selected=true]{background:color-mix(in srgb,var(--accent) 18%,transparent)}.place-suggestion-meta{font-size:.78rem;color:var(--muted)}.flight-lookups{margin:.15rem 0 .35rem}.flight-lookups .muted{margin:0 0 .35rem;text-align:left}.flight-lookup-links{display:flex;flex-wrap:wrap;gap:.45rem}.flight-lookup-links a{font-size:.85rem;text-decoration:none;border:1px solid var(--line);padding:.3rem .65rem;border-radius:999px;color:inherit}.flight-lookup-links a:hover{border-color:var(--accent);color:var(--accent)}.trip-best{margin-top:.25rem;font-size:.9rem}.month-chip.is-on{border-color:var(--accent)}.row-check{flex-direction:row!important;align-items:center;gap:.5rem}.month-fieldset{border:1px solid var(--line);padding:.75rem .85rem .9rem;margin:0}.month-fieldset legend{padding:0 .3rem;font-size:.9rem}.month-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.4rem;gap:.4rem}.month-chip{display:flex;flex-direction:row;align-items:center;gap:.35rem;margin:0;padding:.35rem .4rem;border:1px solid var(--line);font-size:.85rem}.trip-list{list-style:none;padding:0;margin:1rem 0 0;gap:.6rem}.trip-card,.trip-list{display:flex;flex-direction:column}.trip-card{gap:.15rem;padding:.75rem .85rem;border:1px solid var(--line);text-decoration:none;color:inherit}.trip-card:hover{border-color:var(--accent)}.analysis{margin:1.5rem 0}.month-table{display:flex;flex-direction:column;gap:.7rem;margin:1rem 0}.month-row{padding:.65rem .7rem;border:1px solid var(--line)}.month-row.is-out{opacity:.45}.month-row.is-best{border-color:var(--accent)}.month-row-head{display:flex;align-items:center;gap:.6rem;margin-bottom:.45rem;font-weight:600}.month-flags{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;padding:.55rem 0 0;margin:0}.month-flags li{font-size:.72rem;padding:.12rem .45rem;border:1px solid var(--line);border-radius:99px}.month-flags .is-good{border-color:var(--accent-3)}.month-flags .is-bad{border-color:var(--error)}.best-pill{font-size:.75rem;font-weight:600;color:var(--bg);background:var(--accent);padding:.1rem .4rem;border-radius:99px}.month-stats{display:grid;grid-template-columns:1fr;grid-gap:.4rem;gap:.4rem;margin:0}.month-stats div{display:grid;grid-template-columns:6.5rem 1fr;grid-gap:.5rem;gap:.5rem;align-items:center}.month-stats dt{margin:0;font-size:.8rem;color:var(--muted)}.month-stats dd{margin:0;font-size:.85rem}.meter{display:block;height:.4rem;margin-bottom:.2rem;background:var(--line);border-radius:99px;overflow:hidden}.meter>span{display:block;height:100%;background:var(--accent)}.analysis-legend{margin:1rem 0 1.25rem;padding:.85rem .95rem;border:1px solid var(--line);text-align:left;background:color-mix(in srgb,var(--card) 55%,transparent)}.analysis-legend h3{margin:0 0 .45rem;font-size:.95rem;font-weight:650}.analysis-legend ul{margin:0;padding-left:1.1rem}.analysis-legend li{margin:.35rem 0;font-size:.85rem;color:var(--muted)}.analysis-legend strong{color:var(--fg)}.panel{max-width:28rem;margin:0 auto}.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin:1rem 0 .25rem}pre{overflow:auto;background:color-mix(in srgb,var(--bg-deep) 70%,transparent);border:1px solid var(--line);border-radius:16px;padding:.9rem 1rem;font-size:.82rem}.forest-page,.forest-page h1,.forest-page h2,pre{text-align:left}.forest-lede{max-width:42rem}.forest-tabs{border-bottom:1px solid var(--line);margin:1.25rem 0 1.4rem;gap:.4rem}.forest-tabs .tab-btn{background:none;border-radius:0;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:.45rem .65rem .55rem}.forest-tabs .tab-btn.active{color:var(--fg);border-bottom-color:var(--accent)}.forest-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin:.4rem 0 .8rem}.chip{border-radius:999px;font-size:.85rem}.chip.on{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:var(--accent);color:var(--fg)}.forest-controls{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));grid-gap:.75rem 1rem;gap:.75rem 1rem;margin:1rem 0}.forest-controls label,.forest-prose label{display:flex;flex-direction:column;gap:.3rem;font-size:.88rem}.forest-controls input,.forest-prose textarea{font:inherit;padding:.45rem .6rem;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--bg-deep) 70%,transparent);color:inherit}.forest-check{display:flex;align-items:flex-start;gap:.5rem;margin:.4rem 0;font-size:.92rem}.forest-roster{list-style:none;padding:0;margin:.5rem 0 1rem;display:grid;grid-gap:.45rem;gap:.45rem}.forest-roster label{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem .55rem}.swatch{display:inline-block;width:.7rem;height:.7rem;border-radius:99px;margin-right:.35rem;vertical-align:middle}.forest-table-wrap{overflow-x:auto;margin:.75rem 0 1.25rem}.forest-table{width:100%;border-collapse:collapse;font-size:.84rem;text-align:left}.forest-table td,.forest-table th{padding:.4rem .55rem;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);white-space:nowrap}.forest-table tr.winner td{color:var(--accent)}.forest-chart{width:100%;height:auto;margin:.4rem 0 1rem}.forest-map{display:block;width:100%;max-width:36rem;aspect-ratio:1;margin:.6rem auto;border-radius:16px;border:1px solid var(--line);background:#080510}.forest-replay{display:flex;align-items:center;gap:.75rem;margin:.4rem 0 1rem}.forest-replay input[type=range]{flex:1 1}.forest-log{text-align:left;font-size:.84rem;padding-left:1.1rem;max-height:16rem;overflow:auto}.forest-exp{margin:1.25rem 0 2rem;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--card) 55%,transparent)}.forest-prose li,.forest-prose p{max-width:44rem}.forest-prose textarea{width:100%;min-height:12rem;font-family:ui-monospace,monospace;font-size:.82rem}