.app-shell{--ground: #f4f4f2;--raised: #ffffff;--raised-hi: #fafafa;--ink: #121412;--muted: #6a6f6a;--muted-soft: #8a8f8a;--accent: #0f5c3a;--accent-hi: #1a6b45;--shadow-d: rgba(0, 0, 0, .12);--shadow-l: rgba(255, 255, 255, .7);--font-display: "Sora", "Segoe UI", system-ui, sans-serif;--font-body: "DM Sans", "Segoe UI", system-ui, sans-serif;--r: 20px;--r-sm: 16px;--r-btn: 16px;--raise: 8px 8px 18px var(--shadow-d), -6px -6px 14px var(--shadow-l);--raise-sm: 5px 5px 12px var(--shadow-d), -4px -4px 10px var(--shadow-l);--raise-cta: 6px 10px 18px rgba(0, 0, 0, .16), 0 4px 12px rgba(15, 92, 58, .22), -3px -3px 10px rgba(255, 255, 255, .35);--recess: inset 5px 5px 12px rgba(0, 0, 0, .1), inset -4px -4px 10px rgba(255, 255, 255, .65);--edge: inset 0 1px 0 rgba(255, 255, 255, .85);--hairline: rgba(18, 20, 18, .06);--bottom-nav-clearance: calc(84px + env(safe-area-inset-bottom, 0px)) ;background:var(--ground);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}.app-shell h1,.app-shell h2,.app-shell h3,.app-shell h4,.app-shell h5,.app-shell h6{font-family:var(--font-display);font-weight:700;letter-spacing:-.04em;line-height:1.05;color:var(--ink)}.app-shell h1{font-size:2rem;margin:0 0 1.5rem}.app-shell a{color:var(--ink)}.app-shell .app-main{padding:6px 22px 100px}.app-shell .sec{margin:0 0 14px;font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--muted-soft);letter-spacing:.02em;text-transform:none}.app-shell .lede{margin:-16px 0 28px;font-size:14px;font-weight:400;color:var(--muted);letter-spacing:-.01em;line-height:1.4}.app-shell .app-header{display:flex;align-items:center;justify-content:space-between;padding:22px 22px 10px;border-bottom:0;background:transparent}.app-shell .brand{display:flex;align-items:center;gap:8px;background:transparent;border:0;padding:0;cursor:pointer}.app-shell .brand .mark{width:14px;height:14px;flex-shrink:0}.app-shell .brand .wordmark{font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:-.045em;color:var(--ink)}.app-shell .avatar-btn{width:38px;height:38px;border-radius:12px;background:var(--raised);box-shadow:var(--raise-sm),var(--edge);display:grid;place-items:center;font-size:10px;font-weight:600;color:var(--muted);letter-spacing:-.02em;border:0;padding:0;cursor:pointer}.app-shell .avatar-btn:active{box-shadow:var(--recess)}.app-shell .menu-panel{position:absolute;right:22px;top:calc(100% - 4px);width:220px;background:var(--raised);border-radius:var(--r-sm);box-shadow:var(--raise),var(--edge);border:0;z-index:40;padding:8px}.app-shell .menu-panel button{width:100%;display:flex;align-items:center;gap:8px;text-align:left;background:transparent;border:0;color:var(--ink);font-size:13px;padding:10px 8px;border-radius:10px;cursor:pointer}.app-shell .menu-panel button:hover{background:var(--ground)}.app-shell .bottom-nav{position:fixed;left:14px;right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));display:grid;grid-template-columns:repeat(4,1fr);gap:6px;background:var(--raised);border-radius:20px;padding:8px 6px 10px;box-shadow:var(--raise),var(--edge);border-top:0;z-index:40}.app-shell .bottom-nav button{text-align:center;color:var(--muted-soft);font-family:var(--font-body);font-size:10px;font-weight:500;padding:10px 0 6px;letter-spacing:.01em;border-radius:14px;border:0;background:transparent;cursor:pointer;text-transform:none;margin-top:0}.app-shell .bottom-nav button.active{color:var(--accent);font-weight:600;background:var(--raised-hi);box-shadow:var(--raise-sm),var(--edge);border-top:0}.app-shell .bottom-nav button svg{display:block;margin:0 auto 4px;width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.app-shell .btn-primary,.app-shell button.primary{display:block;width:100%;height:52px;border:0;border-radius:var(--r-btn);background:linear-gradient(180deg,var(--accent-hi) 0%,var(--accent) 100%);color:#fff;font-family:var(--font-body);font-size:15px;font-weight:600;letter-spacing:-.015em;cursor:pointer;box-shadow:var(--raise-cta),inset 0 1px #ffffff38;text-align:center;padding:0 18px;text-transform:none}.app-shell .btn-primary:active,.app-shell button.primary:active{box-shadow:inset 3px 3px 8px #00000047,inset -2px -2px 6px #ffffff1a;transform:translateY(1px)}.app-shell .btn-primary:disabled{opacity:.55}.app-shell .btn-primary.inline,.app-shell .btn-sm{width:auto;height:44px;font-size:14px;display:inline-flex;align-items:center;justify-content:center}.app-shell .btn-sm{width:100%}.app-shell .btn-recess{display:block;width:100%;height:48px;border:0;border-radius:var(--r-sm);background:var(--ground);box-shadow:var(--recess);font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.01em;cursor:pointer}.app-shell .btn-recess:active{box-shadow:var(--raise-sm),var(--edge);background:var(--raised-hi)}.app-shell .btn-ghost,.app-shell .btn-secondary{background:transparent;color:var(--muted);border:0;font-family:var(--font-body);font-size:13px;font-weight:500;text-decoration:underline;text-underline-offset:3px;padding:0;cursor:pointer;box-shadow:none;text-transform:none}.app-shell a.btn-primary{display:flex;align-items:center;justify-content:center;text-decoration:none;color:#fff}.app-shell .raised-card{background:var(--raised);border-radius:var(--r);box-shadow:var(--raise),var(--edge)}.app-shell .recess-panel{background:var(--ground);border-radius:var(--r);box-shadow:var(--recess)}.app-shell .studio-list{background:var(--raised);border-radius:var(--r);padding:6px 0;box-shadow:var(--raise),var(--edge)}.app-shell .studio-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;padding:16px 20px;cursor:pointer;border:0;background:transparent;width:100%;text-align:left;font:inherit;color:inherit}.app-shell .studio-row+.studio-row{border-top:1px solid var(--hairline)}.app-shell .studio-row .course-name{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.03em;color:var(--ink);line-height:1.2}.app-shell .studio-row .course-meta{margin-top:3px;font-family:var(--font-body);font-size:11px;font-weight:400;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .status-stamp{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;padding:4px 10px 4px 5px;border-radius:999px;line-height:1}.app-shell .status-stamp-icon{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.app-shell .status-stamp-icon svg{display:block}.app-shell .status-stamp.played{background:#0f5c3a29;color:#084a2f;box-shadow:inset 0 0 0 1px #0f5c3a57}.app-shell .status-stamp.played .status-stamp-icon{background:linear-gradient(180deg,var(--accent-hi) 0%,var(--accent) 100%);color:#fff;box-shadow:var(--raise-sm)}.app-shell .status-stamp.wishlist{background:#c47a0f29;color:#8a4f06;box-shadow:inset 0 0 0 1px #c47a0f66}.app-shell .status-stamp.wishlist .status-stamp-icon{background:linear-gradient(180deg,#d4921a,#b45309);color:#fff;box-shadow:var(--raise-sm)}.app-shell .status-stamp.not-played{background:transparent;color:var(--muted-soft);font-weight:500;box-shadow:inset 0 0 0 1px #64748b47}.app-shell .status-stamp.not-played .status-stamp-icon.dim{background:transparent;color:var(--muted-soft);opacity:.75}.app-shell .status-label{font-size:12px;font-weight:500;white-space:nowrap;color:var(--accent);letter-spacing:-.01em}.app-shell .status-label.wishlist{color:var(--muted-soft);font-weight:400}.app-shell .status-label.rank{color:var(--muted-soft);font-weight:500}.app-shell .chase-hero{background:var(--raised);border-radius:var(--r);padding:28px 24px 22px;margin-bottom:32px;box-shadow:var(--raise),var(--edge);border:0;cursor:pointer;width:100%;text-align:left;color:inherit;font:inherit}.app-shell .chase-num{display:flex;align-items:flex-end;line-height:.82;margin-bottom:8px}.app-shell .chase-num .big{font-family:var(--font-display);font-size:clamp(64px,18vw,92px);font-weight:700;letter-spacing:-.07em;color:var(--ink)}.app-shell .chase-num .of{font-family:var(--font-display);font-size:16px;font-weight:600;letter-spacing:-.04em;color:var(--muted-soft);padding-bottom:14px;margin-left:4px}.app-shell .chase-label{font-size:13px;font-weight:500;color:var(--muted);letter-spacing:-.01em;margin-bottom:20px}.app-shell .chase-footer{display:flex;align-items:center;gap:14px}.app-shell .progress-bar{flex:1;height:10px;border-radius:999px;background:var(--ground);box-shadow:var(--recess);overflow:hidden}.app-shell .progress-bar i{display:block;height:100%;border-radius:999px;background:var(--accent)}.app-shell .chase-meta{font-size:11px;font-weight:500;color:var(--muted-soft);letter-spacing:-.01em;white-space:nowrap}.app-shell .chase-teaser{display:block;background:var(--raised);border-radius:var(--r);padding:20px 22px;box-shadow:var(--raise),var(--edge);color:var(--ink);text-decoration:none;border:0;width:100%;text-align:left;cursor:pointer;font:inherit}.app-shell .chase-teaser-head{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.app-shell .chase-teaser-name{font-family:var(--font-display);font-size:17px;font-weight:600;letter-spacing:-.03em}.app-shell .chase-teaser-count{font-size:12px;font-weight:500;color:var(--muted-soft)}.app-shell .chase-teaser-link{display:block;margin-top:10px;font-size:13px;font-weight:500;color:var(--accent);letter-spacing:-.01em}.app-shell .trip-card{background:var(--raised);border-radius:var(--r);padding:22px 0 16px;box-shadow:var(--raise),var(--edge)}.app-shell .trip-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:0 22px;margin-bottom:4px}.app-shell .trip-name{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.04em}.app-shell .trip-n{font-size:12px;font-weight:500;color:var(--muted-soft)}.app-shell .trip-meta{padding:0 22px;font-size:12px;color:var(--muted-soft);margin-bottom:14px;letter-spacing:-.01em}.app-shell .section-note{margin:-4px 0 14px;font-size:13px;color:var(--muted-soft);line-height:1.35}.app-shell .empty-recess{display:flex;flex-direction:column;justify-content:center;background:var(--ground);border-radius:var(--r);padding:36px 24px;margin-bottom:8px;box-shadow:var(--recess);min-height:360px;border:0}.app-shell .empty-recess p{margin:0 0 10px;font-size:16px;font-weight:500;line-height:1.45;color:var(--ink);letter-spacing:-.015em}.app-shell .empty-recess p.teach{margin-bottom:28px;color:var(--muted);font-size:13px;font-weight:400;line-height:1.4}.app-shell .search-recess{display:flex;align-items:center;gap:10px;background:var(--ground);border-radius:16px;padding:14px 16px;margin-bottom:22px;box-shadow:var(--recess)}.app-shell .search-recess input{border:0;outline:none;background:transparent;width:100%;font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--ink);letter-spacing:-.01em}.app-shell .search-recess input::-moz-placeholder{color:var(--muted-soft)}.app-shell .search-recess input::placeholder{color:var(--muted-soft)}.app-shell .primary-card{background:var(--raised);border-radius:var(--r);padding:24px 22px 22px;margin-bottom:28px;box-shadow:var(--raise),var(--edge)}.app-shell .primary-card .course-title{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.04em;color:var(--ink);line-height:1.15}.app-shell .primary-card .course-meta{margin-top:4px;font-size:13px;font-weight:400;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .confirm-state{margin-top:18px;padding:14px 16px;border-radius:14px;background:var(--ground);box-shadow:var(--recess);cursor:pointer}.app-shell .confirm-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.app-shell .confirm-played{font-size:13px;font-weight:500;color:var(--accent);letter-spacing:-.01em}.app-shell .confirm-saved{font-size:11px;font-weight:400;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .muted-list{background:var(--ground);border-radius:var(--r);padding:4px 0;box-shadow:var(--recess)}.app-shell .muted-row{padding:16px 20px;cursor:pointer;border:0;background:transparent;width:100%;text-align:left;font:inherit;color:inherit}.app-shell .muted-row+.muted-row{border-top:1px solid var(--hairline)}.app-shell .muted-row .course-name{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.03em;color:var(--ink);line-height:1.2}.app-shell .chase-list{background:var(--raised);border-radius:var(--r);padding:6px 0;box-shadow:var(--raise),var(--edge)}.app-shell .chase-row{padding:16px 20px;border:0;background:transparent;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit}.app-shell .chase-row+.chase-row{border-top:1px solid var(--hairline)}.app-shell .chase-row.collapsed{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline}.app-shell .chase-row.expanded{padding:18px 20px 20px;background:var(--raised-hi);margin:4px 8px;border-radius:var(--r-sm);box-shadow:var(--raise-sm),var(--edge);border-top:0}.app-shell .chase-row.expanded+.chase-row{border-top:1px solid var(--hairline)}.app-shell .chase-actions{margin-top:16px;display:flex;flex-direction:column;gap:12px;align-items:stretch}.app-shell .loading-spinner{border:3px solid var(--ground);border-top:3px solid var(--accent);border-radius:50%}.app-shell .list-section{margin-bottom:28px}.app-shell .kicker,.app-shell .meta-kicker,.app-shell .scoreline{display:none}.app-shell .stamp{font-family:var(--font-body);font-size:12px;font-weight:500;letter-spacing:-.01em;text-transform:none;color:var(--accent);background:transparent;border:0;padding:0;transform:none;border-radius:0}.app-shell .stamp.wish,.app-shell .stamp.want,.app-shell .stamp.wishlist{color:var(--muted-soft);font-weight:400;border:0}.app-shell .empty-frame{display:flex;flex-direction:column;justify-content:center;background:var(--ground);border-radius:var(--r);padding:36px 24px;box-shadow:var(--recess);min-height:220px;border:0}.app-shell .empty-frame p{margin:0 0 16px;font-size:15px;line-height:1.45;color:var(--ink)}.app-shell .chip{font-family:var(--font-body);font-size:12px;font-weight:600;padding:8px 12px;border:0;border-radius:12px;background:var(--ground);box-shadow:var(--recess);color:var(--muted);letter-spacing:-.01em;text-transform:none;cursor:pointer}.app-shell .chip.on{background:var(--raised-hi);color:var(--accent);box-shadow:var(--raise-sm),var(--edge)}.app-shell .chip.dash{border:0}.app-shell .map-stage{position:relative;isolation:isolate;z-index:1;height:100%;width:100%}.app-shell .pigeon-map{font-family:var(--font-body)!important;position:relative!important;z-index:1!important}.app-shell .pigeon-tiles img{filter:saturate(.88) brightness(1.03) contrast(.84) grayscale(.28);opacity:.94}.app-shell .map-attribution{font-size:10px;color:var(--muted-soft);background:#ffffffeb;border-radius:8px;padding:4px 8px;box-shadow:var(--raise-sm)}.app-shell .map-marker-hit{pointer-events:auto;cursor:pointer;transform:translate(-50%,-50%);touch-action:manipulation}.app-shell .map-cluster{display:flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(180deg,var(--accent-hi) 0%,var(--accent) 100%);border:2px solid var(--raised-hi);box-shadow:var(--raise-sm),0 0 0 4px #0f5c3a1f;color:#fff;font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:-.03em}.app-shell .map-course-marker{width:44px;height:44px;display:grid;place-items:center}.app-shell .map-pin-wrap{position:relative;width:24px;height:32px;display:inline-flex;align-items:flex-start;justify-content:center}.app-shell .map-course-icon{width:24px;height:32px;overflow:visible;filter:drop-shadow(0 1px 2px rgba(18,20,18,.18))}.app-shell .map-course-pin{fill:#6a6f6ad1;stroke:var(--raised-hi);stroke-width:1.25}.app-shell .map-course-glyph{position:absolute;top:4px;left:50%;transform:translate(-50%);display:grid;place-items:center;width:12px;height:12px;color:#fff;pointer-events:none}.app-shell .map-pin-wrap.not-played .map-course-glyph{top:5px;color:var(--raised-hi)}.app-shell .map-course-marker.played .map-course-pin,.app-shell .map-legend-icon.played .map-course-pin{fill:var(--accent);stroke:#12141224}.app-shell .map-course-marker.wishlist .map-course-pin,.app-shell .map-legend-icon.wishlist .map-course-pin{fill:#b45309;stroke:#8a4f0673}.app-shell .map-course-marker.not-played .map-course-pin,.app-shell .map-legend-icon.not-played .map-course-pin{fill:#6a6f6ad1;stroke:var(--raised-hi)}.app-shell .map-course-marker.selected .map-pin-wrap{transform:scale(1.12);filter:drop-shadow(0 0 0 2px var(--ink)) drop-shadow(0 2px 4px rgba(18,20,18,.2))}.app-shell .map-user-dot{width:16px;height:16px;min-width:44px;min-height:44px;display:grid;place-items:center;transform:translate(-50%,-50%);pointer-events:none}.app-shell .map-user-dot:after{content:"";width:14px;height:14px;border-radius:50%;background:var(--ink);border:2px solid var(--raised-hi);box-shadow:var(--raise-sm)}.app-shell .map-hover-tip{transform:translate(-50%,calc(-100% - 10px));background:var(--raised);border-radius:var(--r-sm);box-shadow:var(--raise),var(--edge);padding:10px 12px;max-width:220px}.app-shell .map-hover-tip h4{margin:0 0 2px;font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:-.03em}.app-shell .map-hover-tip p{margin:0 0 8px;font-size:12px;color:var(--muted-soft)}.app-shell .map-hover-tip-row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.app-shell .map-hover-status{display:inline-flex;align-items:center;gap:4px}.app-shell .map-hover-status.played{color:#084a2f}.app-shell .map-hover-status.wishlist{color:#8a4f06}.app-shell .map-hover-status.not-played,.app-shell .map-hover-distance{color:var(--muted-soft)}.app-shell .map-controls{position:absolute;top:108px;left:10px;z-index:20;display:flex;flex-direction:column;gap:8px;pointer-events:none}.app-shell .map-control-stack{overflow:hidden;border-radius:12px;background:var(--raised);box-shadow:var(--raise-sm),var(--edge);pointer-events:auto}.app-shell .map-control-stack button{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--ink);cursor:pointer}.app-shell .map-control-stack button+button{border-top:1px solid var(--hairline)}.app-shell .map-control-stack button:active{background:var(--ground)}.app-shell .map-chrome-search{position:absolute;left:10px;right:10px;top:10px;z-index:25;display:flex;gap:8px;pointer-events:none}.app-shell .map-chrome-search>*{pointer-events:auto}.app-shell .map-search-input{flex:1;width:100%;border:0;background:var(--raised);border-radius:14px;box-shadow:var(--raise-sm),var(--edge);padding:12px 14px;font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--ink)}.app-shell .map-search-input:focus{outline:none;box-shadow:var(--raise-sm),var(--edge),0 0 0 2px #0f5c3a2e}.app-shell .map-search-input::-moz-placeholder{color:var(--muted-soft)}.app-shell .map-search-input::placeholder{color:var(--muted-soft)}.app-shell .map-filter-btn,.app-shell .map-near{border:0;font-family:var(--font-body);font-size:13px;font-weight:600;letter-spacing:-.01em;border-radius:14px;cursor:pointer}.app-shell .map-filter-btn{background:var(--raised);color:var(--ink);min-width:72px;padding:0 14px;box-shadow:var(--raise-sm),var(--edge)}.app-shell .map-filter-btn.is-active{background:linear-gradient(180deg,var(--accent-hi) 0%,var(--accent) 100%);color:#fff;box-shadow:var(--raise-cta)}.app-shell .map-near{position:absolute;left:10px;top:58px;z-index:20;background:linear-gradient(180deg,var(--accent-hi) 0%,var(--accent) 100%);color:#fff;padding:10px 14px;box-shadow:var(--raise-cta);pointer-events:auto}.app-shell .map-legend{position:absolute;right:10px;top:58px;z-index:20;background:var(--raised);border-radius:12px;box-shadow:var(--raise-sm),var(--edge);padding:10px 12px;font-family:var(--font-body);font-size:10px;font-weight:500;letter-spacing:.02em;min-width:118px;pointer-events:none}.app-shell .map-legend div{display:flex;align-items:center;gap:8px;margin:4px 0;color:var(--muted-soft)}.app-shell .map-legend-icon{width:16px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.app-shell .map-legend-icon svg{width:14px;height:18px}.app-shell .map-panel{position:absolute;left:10px;right:10px;bottom:calc(12px + var(--bottom-nav-clearance));z-index:20;background:var(--raised);border-radius:var(--r-sm);box-shadow:var(--raise),var(--edge);padding:14px 16px;pointer-events:none}.app-shell .map-panel>*{pointer-events:auto}.app-shell .map-panel strong,.app-shell .map-panel-title{display:block;width:100%;border:0;background:transparent;padding:0;text-align:left;font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.04em;color:var(--ink);cursor:pointer}.app-shell .map-panel-title:hover{color:var(--accent)}.app-shell .map-panel em{display:block;font-style:normal;font-size:12px;color:var(--muted-soft);letter-spacing:-.01em;margin-top:4px}.app-shell .map-panel .course-actions{margin-top:14px}.app-shell .map-panel .course-actions .btn-primary{width:auto;height:44px;display:inline-flex;align-items:center;padding:0 16px;font-size:14px}.app-shell .map-panel .course-actions .btn-ghost{height:44px;display:inline-flex;align-items:center;padding:0 8px}.app-shell .map-counts{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;padding-top:10px;border-top:1px solid var(--hairline);font-size:11px;color:var(--muted-soft)}.app-shell .map-counts b{color:var(--ink);font-weight:600}.app-shell .map-context-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;margin:8px 10px 0;padding:10px 14px;background:var(--raised);border-radius:var(--r-sm);box-shadow:var(--raise-sm),var(--edge)}.app-shell .map-context-banner-label{margin:0;font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .map-sheet{position:absolute;left:0;right:0;bottom:var(--bottom-nav-clearance);z-index:30;background:var(--raised);border-radius:var(--r-sm) var(--r-sm) 0 0;box-shadow:var(--raise);padding:12px 16px 16px;pointer-events:auto}.app-shell .map-sheet .grab{width:36px;height:3px;border-radius:999px;background:var(--muted-soft);opacity:.35;margin:0 auto 12px}.app-shell .map-sheet h2{margin:0 0 12px;font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-soft)}.app-shell .map-sheet .chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.app-shell .map-search-panel{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;max-height:360px;overflow-y:auto;background:var(--raised);border-radius:var(--r-sm);box-shadow:var(--raise),var(--edge)}.app-shell .map-search-section{padding:8px}.app-shell .map-search-section h4{margin:0 0 6px;padding:0 8px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-soft)}.app-shell .map-search-option{width:100%;text-align:left;border:0;background:transparent;border-radius:12px;padding:10px 12px;cursor:pointer;color:inherit;font:inherit}.app-shell .map-search-option:hover,.app-shell .map-search-option:focus-visible{background:var(--ground);outline:none}.app-shell .map-search-option-title{font-size:14px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.app-shell .map-search-option-meta{margin-top:2px;font-size:12px;color:var(--muted-soft)}.app-shell .map-search-empty{padding:16px;text-align:center;color:var(--muted-soft);font-size:13px}.app-shell .map-search-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.app-shell .profile-layout{max-width:36rem}@media (min-width: 1200px){.app-shell .profile-layout{max-width:44rem}}.app-shell .profile-hero{display:flex;flex-direction:column;gap:16px;margin-bottom:28px}@media (min-width: 640px){.app-shell .profile-hero{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:20px}}.app-shell .profile-identity{display:flex;align-items:center;gap:14px;min-width:0}.app-shell .profile-avatar{width:52px;height:52px;border-radius:50%;background:var(--ground);box-shadow:var(--recess);display:grid;place-items:center;flex-shrink:0;color:var(--accent)}.app-shell .profile-avatar svg{width:26px;height:26px;stroke:currentColor}.app-shell .profile-name{margin:0 0 4px;font-family:var(--font-display);font-size:clamp(1.25rem,4.5vw,1.625rem);font-weight:700;letter-spacing:-.04em;line-height:1.1;color:var(--ink)}.app-shell .profile-meta{margin:0;font-size:13px;font-weight:400;color:var(--muted-soft);display:flex;align-items:center;gap:6px;letter-spacing:-.01em}.app-shell .profile-meta svg{flex-shrink:0;opacity:.7}.app-shell .profile-meta+.profile-meta{margin-top:4px}.app-shell .profile-section{margin-bottom:28px}.app-shell .profile-card{background:var(--raised);border-radius:var(--r);padding:22px;box-shadow:var(--raise),var(--edge)}.app-shell .profile-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.app-shell .profile-card-head h2{margin:0;font-size:17px;font-weight:700;letter-spacing:-.03em}.app-shell .stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media (min-width: 640px){.app-shell .stat-grid.cols-4{grid-template-columns:repeat(4,1fr)}}.app-shell .stat-cell{background:var(--ground);border-radius:var(--r-sm);padding:16px 12px;text-align:center;box-shadow:var(--recess)}.app-shell .stat-value{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.04em;color:var(--ink);line-height:1;margin-bottom:4px;text-transform:capitalize}.app-shell .stat-label{font-size:11px;font-weight:500;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .field-label{display:block;margin-bottom:8px;font-size:12px;font-weight:500;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .field-recess,.app-shell select.field-recess,.app-shell textarea.field-recess{display:block;width:100%;background:var(--ground);border-radius:14px;padding:12px 14px;margin-bottom:16px;box-shadow:var(--recess);border:0;font-family:var(--font-body);font-size:15px;font-weight:500;color:var(--ink);outline:none;letter-spacing:-.01em;box-sizing:border-box}.app-shell textarea.field-recess{min-height:96px;resize:vertical}.app-shell .field-recess:focus,.app-shell select.field-recess:focus,.app-shell textarea.field-recess:focus{box-shadow:var(--recess),0 0 0 2px #0f5c3a2e}.app-shell .field-hint{margin:-12px 0 16px;font-size:11px;color:var(--muted-soft);line-height:1.35}.app-shell .form-grid-2{display:grid;grid-template-columns:1fr;gap:0 16px}@media (min-width: 640px){.app-shell .form-grid-2{grid-template-columns:1fr 1fr}}.app-shell .profile-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.app-shell .btn-primary.inline,.app-shell .btn-recess.inline{width:auto;height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;font-size:14px}.app-shell .btn-recess.inline{width:auto}.app-shell .home-course-panel{background:var(--ground);border-radius:var(--r-sm);padding:18px;box-shadow:var(--recess)}.app-shell .home-course-name{margin:0 0 8px;font-family:var(--font-display);font-size:17px;font-weight:600;letter-spacing:-.03em;color:var(--ink)}.app-shell .home-course-meta{margin:0 0 8px;font-size:13px;color:var(--muted-soft);display:flex;align-items:center;gap:6px;letter-spacing:-.01em}.app-shell .home-course-links{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--muted)}.app-shell .home-course-links a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.app-shell .profile-empty{text-align:center;padding:28px 16px}.app-shell .profile-empty svg{margin:0 auto 14px;color:var(--muted-soft);opacity:.5}.app-shell .profile-empty p{margin:0 0 18px;font-size:14px;color:var(--muted)}.app-shell .profile-toast{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:50;padding:12px 20px;border-radius:var(--r-sm);font-size:13px;font-weight:600;letter-spacing:-.01em;box-shadow:var(--raise),var(--edge)}.app-shell .profile-toast.success{background:var(--accent);color:#fff}.app-shell .profile-toast.error{background:#b42318;color:#fff}.app-shell .profile-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#12141266;display:flex;align-items:center;justify-content:center;padding:16px}.app-shell .profile-modal{width:100%;max-width:420px;max-height:80vh;display:flex;flex-direction:column;background:var(--raised);border-radius:var(--r);box-shadow:var(--raise),var(--edge);overflow:hidden}.app-shell .profile-modal-head{padding:20px 20px 16px;border-bottom:1px solid var(--hairline)}.app-shell .profile-modal-head-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.app-shell .profile-modal-head h3{margin:0;font-size:17px;font-weight:700;letter-spacing:-.03em}.app-shell .profile-modal-close{width:36px;height:36px;border:0;border-radius:12px;background:var(--ground);box-shadow:var(--recess);display:grid;place-items:center;cursor:pointer;color:var(--muted);padding:0}.app-shell .profile-modal-close:active{box-shadow:var(--raise-sm),var(--edge)}.app-shell .profile-modal-body{overflow-y:auto;flex:1;padding:8px}.app-shell .profile-modal-option{width:100%;text-align:left;border:0;background:transparent;border-radius:12px;padding:12px 14px;cursor:pointer;font:inherit;color:inherit}.app-shell .profile-modal-option:hover{background:var(--ground)}.app-shell .profile-modal-option .course-name{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.03em;color:var(--ink)}.app-shell .profile-modal-option .course-meta{margin-top:3px;font-size:12px;color:var(--muted-soft)}.app-shell .profile-modal-empty{padding:28px 16px;text-align:center;font-size:13px;color:var(--muted-soft)}.app-shell .course-modal{max-width:440px}.app-shell .course-modal-body{padding:12px 16px 20px}.app-shell .course-modal-meta{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:13px;font-weight:400;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .course-modal-meta svg{flex-shrink:0;color:var(--accent)}.app-shell .course-modal-contact{display:flex;flex-wrap:wrap;gap:14px;margin:0 0 16px;font-size:13px;color:var(--muted)}.app-shell .course-modal-contact span,.app-shell .course-modal-contact a{display:inline-flex;align-items:center;gap:6px}.app-shell .course-modal-contact a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.app-shell .course-modal-score{margin-top:16px;padding-top:16px;border-top:1px solid var(--hairline)}.app-shell .course-modal-score-value{display:block;margin-top:8px;font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.04em;color:var(--accent)}.app-shell .course-modal-score-value span{font-size:14px;font-weight:500;color:var(--muted-soft)}.app-shell .course-modal-score-hint{margin-top:6px;font-size:12px;color:var(--muted-soft)}.app-shell .course-modal-score-clear{margin-left:8px;border:0;background:transparent;font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--muted-soft);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:0}.app-shell .course-modal-status{display:flex;align-items:center;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid var(--hairline)}.app-shell .course-modal-user-rating{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--accent)}.app-shell .course-modal-community{margin-top:16px;padding:14px 16px;background:var(--ground);border-radius:var(--r-sm);box-shadow:var(--recess)}.app-shell .course-modal-section-label{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:-.01em;color:var(--muted)}.app-shell .course-modal-rating-line{display:flex;align-items:baseline;gap:10px}.app-shell .course-modal-rating-score{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:-.04em;color:var(--ink)}.app-shell .course-modal-rating-count{font-size:12px;color:var(--muted-soft)}.app-shell .course-modal-friends{margin-top:16px}.app-shell .course-modal-friends-list{display:flex;flex-direction:column;gap:8px}.app-shell .course-modal-friends-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.app-shell .course-modal-friends-row svg{color:var(--accent);flex-shrink:0}.app-shell .course-modal-friends-row strong{color:var(--ink);font-weight:600}.app-shell .course-modal-details-btn{width:100%;margin-top:16px}.app-shell .score-range{width:100%;height:10px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:999px;background:var(--ground);box-shadow:var(--recess);cursor:pointer}.app-shell .score-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);box-shadow:var(--raise-sm);border:2px solid var(--raised-hi)}.app-shell .score-range::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);box-shadow:var(--raise-sm);border:2px solid var(--raised-hi)}.app-shell .score-range-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.app-shell .score-range-row span{font-size:11px;color:var(--muted-soft);width:1.75rem;text-align:center}.app-shell .score-input-row{display:flex;align-items:center;gap:8px}.app-shell .score-input-row .field-recess{width:72px;margin-bottom:0;text-align:center}.app-shell .progress-map-card{background:var(--raised);border-radius:var(--r);padding:22px;box-shadow:var(--raise),var(--edge)}.app-shell .progress-map-card-head{display:flex;align-items:center;gap:8px;margin-bottom:16px}.app-shell .progress-map-card-head h3{margin:0;font-size:17px;font-weight:700;letter-spacing:-.03em}.app-shell .progress-map-card-head svg{width:20px;height:20px;color:var(--accent);flex-shrink:0}.app-shell .progress-map-stage{background:var(--ground);border-radius:var(--r-sm);padding:12px;box-shadow:var(--recess)}.app-shell .progress-map-summary{margin-top:16px;text-align:center}.app-shell .progress-map-summary .big{font-family:var(--font-display);font-size:18px;font-weight:700;letter-spacing:-.03em;color:var(--accent)}.app-shell .progress-map-summary .sub{margin-top:4px;font-size:13px;color:var(--muted-soft)}.app-shell .state-progress-list{margin-top:8px}.app-shell .state-progress-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0}.app-shell .state-progress-label{font-size:13px;font-weight:500;color:var(--ink);letter-spacing:-.01em}.app-shell .state-progress-bar-wrap{display:flex;align-items:center;gap:10px}.app-shell .state-progress-bar-wrap .progress-bar{width:80px;flex:none}.app-shell .state-progress-count{font-size:12px;font-weight:600;color:var(--muted);min-width:1.5rem;text-align:right}.app-shell .profile-bio{margin:0 0 16px;font-size:14px;line-height:1.5;color:var(--muted);letter-spacing:-.01em}.app-shell .profile-username{margin:0 0 16px;font-size:14px;color:var(--muted);letter-spacing:-.01em}.app-shell .profile-username strong{color:var(--ink);font-weight:600}.app-shell .rank-badge{width:32px;height:32px;border-radius:50%;background:var(--ground);box-shadow:var(--recess);display:grid;place-items:center;font-family:var(--font-display);font-size:12px;font-weight:700;color:var(--accent);flex-shrink:0}.app-shell .page-layout-wide{max-width:48rem}@media (min-width: 1200px){.app-shell .page-layout-wide{max-width:56rem}}.app-shell .page-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:8px}.app-shell .page-top.compact{margin-bottom:0}.app-shell .page-top h1{margin:0 0 4px;font-size:1.5rem}.app-shell .page-back{width:40px;height:40px;flex-shrink:0;border:0;border-radius:12px;background:var(--ground);box-shadow:var(--recess);display:grid;place-items:center;color:var(--muted);cursor:pointer;padding:0}.app-shell .page-back:active{box-shadow:var(--raise-sm),var(--edge);background:var(--raised-hi)}.app-shell .chip-row{display:flex;flex-wrap:wrap;gap:8px}.app-shell .chip-row .chip{display:inline-flex;align-items:center;gap:6px}.app-shell .form-alert{background:var(--ground);border-radius:var(--r-sm);padding:12px 16px;margin-bottom:20px;box-shadow:var(--recess);font-size:13px;font-weight:500;color:#b42318;letter-spacing:-.01em}.app-shell .form-actions-row{display:flex;flex-wrap:wrap;gap:12px}.app-shell .form-actions-row .btn-primary,.app-shell .form-actions-row .btn-recess{flex:1;min-width:140px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.app-shell .form-actions-row .btn-primary.inline,.app-shell .form-actions-row .btn-recess.inline{width:auto;flex:1}.app-shell .course-picker-list{max-height:24rem;overflow-y:auto}.app-shell .course-picker-row{align-items:center}.app-shell .course-picker-row.selected{background:var(--ground)}.app-shell .course-picker-status{margin-top:6px}.app-shell .selection-check{width:24px;height:24px;border-radius:50%;background:var(--ground);box-shadow:var(--recess);display:grid;place-items:center;color:transparent;flex-shrink:0}.app-shell .selection-check.on{background:var(--accent);box-shadow:var(--raise-sm);color:#fff}.app-shell .selected-course-grid{display:grid;grid-template-columns:1fr;gap:8px;max-height:12rem;overflow-y:auto}@media (min-width: 640px){.app-shell .selected-course-grid{grid-template-columns:1fr 1fr}}.app-shell .selected-course-item{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--ground);border-radius:var(--r-sm);padding:12px 14px;box-shadow:var(--recess)}.app-shell .selected-course-item .course-name{font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:-.03em;color:var(--ink);line-height:1.2}.app-shell .selected-course-item .course-meta{margin-top:2px;font-size:11px;color:var(--muted-soft)}.app-shell .selected-course-remove{width:28px;height:28px;border:0;border-radius:50%;background:var(--raised);box-shadow:var(--recess);display:grid;place-items:center;color:var(--muted);cursor:pointer;padding:0;flex-shrink:0}.app-shell .selected-course-remove:active{box-shadow:var(--raise-sm),var(--edge)}.app-shell .filter-grid{display:grid;grid-template-columns:1fr;gap:0 12px;margin-bottom:16px}@media (min-width: 768px){.app-shell .filter-grid{grid-template-columns:1.4fr 1fr 1fr}.app-shell .filter-grid .search-recess,.app-shell .filter-grid .field-recess{margin-bottom:0}}.app-shell .search-status{margin:0 0 14px;font-size:12px;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .search-status .loading-spinner{display:inline-block;vertical-align:middle;margin-right:6px}.app-shell .course-detail-header{position:sticky;top:0;z-index:10;background:var(--ground);padding:14px 22px 12px;box-shadow:0 1px 0 var(--hairline)}.app-shell .course-detail-header-inner{max-width:48rem;margin:0 auto}@media (min-width: 1200px){.app-shell .course-detail-header-inner,.app-shell .course-detail-layout{max-width:56rem}}.app-shell .course-detail-location{display:flex;align-items:center;gap:4px;margin:0;font-size:12px;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .course-detail-location svg{flex-shrink:0;opacity:.7}.app-shell .course-detail-header .course-actions{margin:12px 0}.app-shell .course-detail-header .course-actions .btn-primary{width:auto;height:44px;display:inline-flex;align-items:center;padding:0 16px;font-size:14px}.app-shell .course-detail-header .course-actions .btn-ghost{height:44px;display:inline-flex;align-items:center;padding:0 8px}.app-shell .tab-chips .chip{flex:1;justify-content:center;min-width:0;font-size:11px;padding:8px 6px}.app-shell .detail-grid{display:grid;grid-template-columns:1fr;gap:16px 24px}@media (min-width: 768px){.app-shell .detail-grid{grid-template-columns:1fr 1fr}}.app-shell .detail-field .field-label{margin-bottom:4px}.app-shell .detail-value{margin:0;font-size:14px;font-weight:500;color:var(--ink);letter-spacing:-.01em;line-height:1.4}.app-shell .detail-value.muted{color:var(--muted-soft);font-weight:400}.app-shell .contact-row{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink)}.app-shell .contact-row svg{flex-shrink:0;color:var(--muted-soft)}.app-shell .contact-row a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;font-weight:500}.app-shell .status-notes{margin-top:12px;padding:14px 16px;background:var(--ground);border-radius:var(--r-sm);box-shadow:var(--recess);font-size:13px;line-height:1.45;color:var(--muted);letter-spacing:-.01em}.app-shell .range-recess{display:flex;align-items:center;gap:14px;background:var(--ground);border-radius:var(--r-sm);padding:14px 16px;box-shadow:var(--recess)}.app-shell .depth-slider{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--raised);border-radius:999px;box-shadow:var(--recess);cursor:pointer}.app-shell .depth-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);box-shadow:var(--raise-sm);border:0;cursor:pointer}.app-shell .depth-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);box-shadow:var(--raise-sm);border:0;cursor:pointer}.app-shell .range-readout{display:flex;align-items:center;gap:2px;background:var(--raised);border-radius:12px;padding:6px 10px;box-shadow:var(--raise-sm),var(--edge);min-width:76px;justify-content:center}.app-shell .range-readout input{width:2.5rem;border:0;outline:none;background:transparent;font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--ink);text-align:center;letter-spacing:-.03em}.app-shell .range-readout span{font-size:12px;color:var(--muted-soft);font-weight:500}.app-shell .save-hint{font-size:11px;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .save-hint.saved{color:var(--accent);font-weight:600}.app-shell .link-quiet{margin-top:8px;border:0;background:transparent;padding:0;font-size:11px;color:var(--muted-soft);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.app-shell .link-quiet:hover{color:var(--ink)}.app-shell .link-accent{margin-top:8px;border:0;background:transparent;padding:0;font-size:12px;color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font-weight:500}.app-shell .peek-main{max-width:720px;padding-bottom:48px}.app-shell .peek-banner{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;background:var(--ground);border-radius:var(--r-sm);padding:12px 16px;margin-bottom:24px;box-shadow:var(--recess)}.app-shell .peek-banner-label{font-family:var(--font-display);font-size:13px;font-weight:700;letter-spacing:-.03em;color:var(--accent)}.app-shell .peek-banner-text{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:-.01em;line-height:1.4}.app-shell .peek-banner-extra{display:none}.app-shell .peek-top,.app-shell .peek-intro h1{margin-bottom:8px}.app-shell .peek-intro .lede{margin:0 0 24px}.app-shell .peek-cta{display:none;padding:22px 24px}.app-shell .peek-cta-copy{margin:0 0 18px;font-size:14px;font-weight:400;color:var(--muted);letter-spacing:-.01em;line-height:1.45}.app-shell .peek-cta-signin{margin-top:12px}.app-shell .peek-cta-mobile{margin-top:36px;padding:22px 24px}.app-shell .peek-chase,.app-shell .peek-row{cursor:default}.app-shell .example-pill{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--muted);background:var(--ground);vertical-align:middle}.app-shell .map-teaser{margin-top:28px}.app-shell .map-teaser .sec{display:flex;align-items:center;margin-bottom:10px}.app-shell .map-teaser-card{border-radius:var(--r-sm);padding:18px;background:var(--ground);box-shadow:var(--recess)}.app-shell .map-teaser-title{margin:0 0 6px;font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.app-shell .map-teaser-deck{margin:0 0 14px;font-size:13px;line-height:1.4;color:var(--muted);letter-spacing:-.01em}.app-shell .peek-stamp-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px 16px}.app-shell .map-teaser-cta{margin-top:16px}.app-shell .peek-header-auth{display:flex;align-items:center;gap:12px}.app-shell .peek-signin{font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--muted);text-decoration:none;letter-spacing:-.01em;padding:8px 4px}.app-shell .peek-signin:hover{color:var(--ink)}.app-shell .peek-signup{width:auto;height:38px;font-size:13px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.app-shell .review-layout{display:flex;flex-direction:column;gap:0}.app-shell .review-rating-hero{display:grid;grid-template-columns:1fr;gap:24px}@media (min-width: 768px){.app-shell .review-rating-hero{grid-template-columns:1fr 1fr;align-items:start}}.app-shell .review-rating-hero-main{text-align:center}@media (min-width: 768px){.app-shell .review-rating-hero-main{text-align:center;padding-top:8px}}.app-shell .review-rating-avg{font-family:var(--font-display);font-size:clamp(48px,12vw,64px);font-weight:700;letter-spacing:-.06em;color:var(--ink);line-height:1;margin-bottom:8px}.app-shell .review-rating-meta{margin:0;font-size:13px;font-weight:400;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .review-rating-value{font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:-.03em;color:var(--ink)}.app-shell .review-rating-suffix{font-size:11px;font-weight:500;color:var(--muted-soft);margin-left:1px}.app-shell .review-user-panel{background:var(--ground);border-radius:var(--r-sm);padding:16px 18px;box-shadow:var(--recess)}.app-shell .review-user-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.app-shell .review-user-rating{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.app-shell .review-user-rating svg{color:var(--muted-soft);flex-shrink:0}.app-shell .review-icon-actions{display:flex;gap:8px}.app-shell .icon-btn-quiet{width:36px;height:36px;border:0;border-radius:12px;background:var(--ground);box-shadow:var(--recess);display:grid;place-items:center;cursor:pointer;color:var(--muted);padding:0}.app-shell .icon-btn-quiet:active{box-shadow:var(--raise-sm),var(--edge);color:var(--ink)}.app-shell .review-list{background:var(--ground);border-radius:var(--r-sm);box-shadow:var(--recess);overflow:hidden}.app-shell .review-row{padding:16px 18px}.app-shell .review-row+.review-row{border-top:1px solid var(--hairline)}.app-shell .review-row-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.app-shell .review-row-user{display:flex;align-items:center;gap:12px;min-width:0}.app-shell .review-avatar{width:40px;height:40px;border-radius:50%;background:var(--raised);box-shadow:var(--recess);display:grid;place-items:center;flex-shrink:0;color:var(--muted-soft)}.app-shell .review-author{font-family:var(--font-display);font-size:14px;font-weight:600;letter-spacing:-.03em;color:var(--ink);line-height:1.2}.app-shell .review-date{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:400;color:var(--muted-soft);letter-spacing:-.01em;white-space:nowrap;flex-shrink:0}.app-shell .review-body{margin:0;font-size:14px;line-height:1.5;color:var(--muted);letter-spacing:-.01em}.app-shell .review-load-more{display:flex;justify-content:center;margin-top:20px}.app-shell select.field-recess.compact{width:auto;margin-bottom:0;font-size:13px;padding:10px 12px}@media (min-width: 720px){.app-shell .peek-main{max-width:960px;padding-bottom:64px}.app-shell .peek-banner-extra{display:inline}.app-shell .peek-top{display:grid;grid-template-columns:1fr min(320px,38%);gap:24px 32px;align-items:start;margin-bottom:8px}.app-shell .peek-intro .lede{margin-bottom:0}.app-shell .peek-cta{display:block}.app-shell .peek-cta-mobile{display:none}}.app-shell .tutorial-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#12141266;display:flex;align-items:center;justify-content:center;padding:16px}.app-shell .tutorial-modal{width:100%;max-width:42rem;max-height:90vh;display:flex;flex-direction:column;background:var(--raised);border-radius:var(--r);box-shadow:var(--raise),var(--edge);overflow:hidden}.app-shell .tutorial-modal-head{padding:20px 22px 16px;border-bottom:1px solid var(--hairline);flex-shrink:0}.app-shell .tutorial-modal-head-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.app-shell .tutorial-head-identity{display:flex;align-items:center;gap:12px;min-width:0}.app-shell .tutorial-icon-badge{width:48px;height:48px;border-radius:50%;background:var(--ground);box-shadow:var(--recess);display:grid;place-items:center;flex-shrink:0;color:var(--accent)}.app-shell .tutorial-modal-head h2{margin:0 0 4px;font-size:1.125rem;line-height:1.2}.app-shell .tutorial-step{margin:0;font-size:12px;font-weight:500;color:var(--muted-soft);letter-spacing:-.01em}.app-shell .tutorial-modal-body{overflow-y:auto;flex:1;padding:28px 22px 24px;min-height:320px}.app-shell .tutorial-hero{text-align:center;margin-bottom:28px}.app-shell .tutorial-icon-hero{width:96px;height:96px;border-radius:50%;background:var(--ground);box-shadow:var(--recess);display:grid;place-items:center;margin:0 auto 20px;color:var(--accent)}.app-shell .tutorial-hero h3{margin:0 0 12px;font-size:1.5rem}.app-shell .tutorial-lede{margin:0 auto;max-width:28rem;font-size:15px;font-weight:400;color:var(--muted);line-height:1.45;letter-spacing:-.01em}.app-shell .tutorial-features{display:grid;grid-template-columns:1fr;gap:10px}@media (min-width: 640px){.app-shell .tutorial-features{grid-template-columns:1fr 1fr}}.app-shell .tutorial-feature-chip{display:flex;align-items:center;gap:10px;background:var(--ground);border-radius:var(--r-sm);padding:12px 14px;box-shadow:var(--recess);font-size:13px;font-weight:500;color:var(--ink);letter-spacing:-.01em}.app-shell .tutorial-feature-chip svg{flex-shrink:0;color:var(--accent)}.app-shell .tutorial-modal-foot{padding:0 22px 22px;flex-shrink:0}.app-shell .tutorial-dots{display:flex;justify-content:center;gap:8px;margin-bottom:20px}.app-shell .tutorial-dot{width:10px;height:10px;border:0;border-radius:50%;background:var(--ground);box-shadow:var(--recess);padding:0;cursor:pointer;transition:box-shadow .2s ease,transform .2s ease}.app-shell .tutorial-dot.active{background:var(--accent);box-shadow:var(--raise-sm);transform:scale(1.15)}.app-shell .tutorial-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.app-shell .tutorial-nav-prev{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;padding:8px 4px}.app-shell .tutorial-nav-prev:disabled{color:var(--muted-soft);opacity:.5;cursor:not-allowed}.app-shell .tutorial-nav-prev:not(:disabled):active{color:var(--ink)}.app-shell .tutorial-nav-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.app-shell .tutorial-next-btn{display:inline-flex;align-items:center;gap:8px}.app-shell .friends-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#12141266;display:flex;align-items:center;justify-content:center;padding:16px}.app-shell .friends-modal{width:100%;max-width:42rem;max-height:90vh;display:flex;flex-direction:column;background:var(--raised);border-radius:var(--r);box-shadow:var(--raise),var(--edge);overflow:hidden}.app-shell .friends-modal-head{padding:20px 22px 16px;border-bottom:1px solid var(--hairline);flex-shrink:0}.app-shell .friends-modal-head-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.app-shell .friends-modal-head h2{margin:0 0 4px;font-size:1.25rem}.app-shell .friends-modal-lede{margin:0;font-size:13px}.app-shell .friends-tab-chips{margin-bottom:0}.app-shell .friends-tab-count{font-size:10px;font-weight:600;padding:2px 6px;border-radius:8px;background:var(--ground);box-shadow:var(--recess);color:var(--muted-soft);line-height:1.2}.app-shell .chip.on .friends-tab-count{color:var(--accent)}.app-shell .friends-modal-body{overflow-y:auto;flex:1;padding:20px 22px 24px;min-height:320px}.app-shell .friends-search-row{display:flex;gap:10px;align-items:stretch;margin-bottom:20px}.app-shell .friends-search-row .search-recess{flex:1;margin-bottom:0}.app-shell .friends-search-btn{width:48px;min-width:48px;height:auto;min-height:48px;padding:0;flex-shrink:0}.app-shell .friends-list{background:var(--ground);border-radius:var(--r-sm);box-shadow:var(--recess);overflow:hidden}.app-shell .friends-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px}.app-shell .friends-row+.friends-row{border-top:1px solid var(--hairline)}.app-shell .friends-row-user{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.app-shell .friends-row-meta{margin-top:2px;font-size:12px;color:var(--muted-soft);display:flex;flex-wrap:wrap;align-items:center;gap:6px;letter-spacing:-.01em}.app-shell .friends-row-meta svg{flex-shrink:0;opacity:.7}.app-shell .friends-row-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.app-shell .friends-request-actions{flex-direction:column;align-items:stretch}.app-shell .friends-action-btn{height:40px;font-size:13px;padding:0 14px;white-space:nowrap}.app-shell .friends-status-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:8px 12px;border-radius:12px;background:var(--ground);box-shadow:var(--recess);color:var(--muted-soft);letter-spacing:-.01em;white-space:nowrap}.app-shell .friends-status-chip.pending{color:var(--muted)}.app-shell .friends-status-chip.friends{color:var(--accent)}.app-shell .friends-meta-chip{display:inline-flex;align-items:center;font-size:11px;font-weight:500;padding:3px 8px;border-radius:8px;background:var(--raised);box-shadow:var(--recess);color:var(--muted-soft);letter-spacing:-.01em}.app-shell .friends-empty{min-height:280px;align-items:center}@media (min-width: 480px){.app-shell .friends-request-actions{flex-direction:row;align-items:center}}@media (max-width: 479px){.app-shell .friends-row{flex-wrap:wrap}.app-shell .friends-row-actions{width:100%;justify-content:flex-end}.app-shell .friends-request-actions{width:100%}.app-shell .friends-request-actions .friends-action-btn{flex:1}}.app-shell .friend-activity-group+.friend-activity-group{margin-top:18px;padding-top:18px;border-top:1px solid var(--hairline)}.app-shell .friend-activity-subhead{margin:0 0 10px;font-size:12px;font-weight:600;color:var(--muted);letter-spacing:-.01em}.app-shell .friend-activity-list{padding:0}.app-shell .friend-activity-row{padding:14px 18px;display:grid;grid-template-columns:1fr auto;gap:8px 12px;align-items:start}.app-shell .friend-activity-row+.friend-activity-row{border-top:1px solid var(--hairline)}.app-shell .friend-activity-main{display:flex;align-items:center;gap:10px;grid-column:1;min-width:0}.app-shell .friend-activity-avatar{width:32px;height:32px}.app-shell .friend-activity-avatar svg{width:16px;height:16px}.app-shell .friend-activity-notes{grid-column:1 / -1;margin:0;padding:10px 12px;background:var(--ground);border-radius:12px;box-shadow:var(--recess);font-size:12px;color:var(--muted);font-style:italic;line-height:1.4;letter-spacing:-.01em}.app-shell .friend-activity-compact{display:flex;flex-direction:column;gap:6px}.app-shell .friend-activity-compact-line{display:flex;align-items:center;gap:8px;margin:0;font-size:12px;color:var(--muted);letter-spacing:-.01em}.app-shell .friend-activity-compact-line svg{flex-shrink:0;color:var(--muted-soft);opacity:.8}.app-shell .friend-activity-compact-line strong{color:var(--ink);font-weight:600}.app-shell .modal-rating-readout{display:flex;align-items:baseline;gap:6px;margin:0 0 4px;font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink);letter-spacing:-.03em}.app-shell .modal-rating-readout span{font-size:12px;font-weight:500;color:var(--muted-soft)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(42 49 43 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(42 49 43 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#c4b9a5}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Gill Sans,Trebuchet MS,Segoe UI,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#6e675c}input::placeholder,textarea::placeholder{opacity:1;color:#6e675c}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.-right-1{right:-.25rem}.-top-1{top:-.25rem}.left-2\.5{left:.625rem}.right-2\.5{right:.625rem}.top-28{top:7rem}.z-20{z-index:20}.z-30{z-index:30}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-auto{margin-left:auto}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-\[22px\]{margin-top:22px}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-\[14px\]{height:14px}.h-auto{height:auto}.h-dvh{height:100dvh}.h-full{height:100%}.min-h-0{min-height:0px}.min-h-screen{min-height:100vh}.w-24{width:6rem}.w-32{width:8rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[14px\]{min-width:14px}.max-w-4xl{max-width:56rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:2px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:2px}.border{border-width:1px}.border-0{border-width:0px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-\[var\(--hairline\)\]{border-color:var(--hairline)}.border-danger{--tw-border-opacity: 1;border-color:rgb(122 46 46 / var(--tw-border-opacity, 1))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(196 185 165 / var(--tw-border-opacity, 1))}.bg-\[\#7a2e2e\]{--tw-bg-opacity: 1;background-color:rgb(122 46 46 / var(--tw-bg-opacity, 1))}.bg-card{--tw-bg-opacity: 1;background-color:rgb(247 241 230 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(196 185 165 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(20 40 28 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-0{padding:0}.p-3{padding:.75rem}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-\[22px\]{padding-left:22px;padding-right:22px}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pb-1\.5{padding-bottom:.375rem}.pb-2{padding-bottom:.5rem}.pb-4{padding-bottom:1rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.text-left{text-align:left}.font-meta{font-family:IBM Plex Mono,SF Mono,Menlo,Consolas,monospace}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[15px\]{font-size:15px}.text-\[9px\]{font-size:9px}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.leading-snug{line-height:1.375}.text-\[\#7a2e2e\]{--tw-text-opacity: 1;color:rgb(122 46 46 / var(--tw-text-opacity, 1))}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--muted-soft\)\]{color:var(--muted-soft)}.text-danger{--tw-text-opacity: 1;color:rgb(122 46 46 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(110 103 92 / var(--tw-text-opacity, 1))}.text-gray-600,.text-gray-700{--tw-text-opacity: 1;color:rgb(42 49 43 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(18 22 18 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(20 40 28 / var(--tw-text-opacity, 1))}.text-inherit{color:inherit}.text-ink-soft{--tw-text-opacity: 1;color:rgb(42 49 43 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(122 46 46 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.shadow-md{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}:root{--ink: #121612;--ink-soft: #2a312b;--paper: #f4f4f2;--paper-2: #eeeeec;--card: #ffffff;--line: #c4b9a5;--muted: #6e675c;--forest: #14281c;--forest-2: #1c3a28;--stamp: #1a3324;--focus: #7f947f;--danger: #7a2e2e;--radius: 2px;--font-display: "Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif;--font-ui: "Gill Sans", "Trebuchet MS", "Segoe UI", sans-serif;--font-meta: "IBM Plex Mono", "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}body{font-family:var(--font-ui);background-color:var(--paper);background-image:radial-gradient(rgba(18,22,18,.035) .6px,transparent .6px);background-size:3px 3px;color:var(--ink);line-height:1.45}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;line-height:1.05;color:var(--ink)}h1{font-size:1.85rem}h2{font-size:1.35rem}h3{font-size:1.1rem}button,input,select,textarea{font-family:inherit;border-radius:var(--radius)}a{color:var(--ink)}.kicker,.meta-kicker,.sec{font-family:var(--font-meta);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}.scoreline{height:1px;background:repeating-linear-gradient(90deg,var(--line) 0 4px,transparent 4px 7px);margin-top:5px;max-width:72%;opacity:.7}.stamp{font-family:var(--font-meta);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--paper);background:var(--stamp);border:1px solid var(--stamp);padding:4px 5px;display:inline-block;line-height:1.2;transform:none;border-radius:0;white-space:nowrap}.stamp.wish,.stamp.want{color:var(--muted);background:transparent;border-style:dashed;border-color:var(--muted)}.stamp.unvisited{background:transparent;border-style:solid;border-color:var(--line);color:var(--muted)}.btn-primary,button.primary{background:var(--forest);color:var(--paper);border:1px solid var(--forest);border-radius:var(--radius);font-family:var(--font-ui);font-size:14px;font-weight:600;letter-spacing:.02em;text-transform:none;padding:11px 14px;box-shadow:none}.btn-primary:hover,button.primary:hover{background:var(--forest-2);transform:none;box-shadow:none}.btn-primary:disabled{opacity:.55}.btn-ghost,.btn-secondary{background:transparent;color:var(--ink);border:1px solid var(--ink);border-radius:var(--radius);font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:none;padding:8px 10px;box-shadow:none}.course-row{display:grid;grid-template-columns:1fr auto;gap:10px;padding:11px 0;border-top:1px solid var(--line);align-items:start;cursor:pointer;background:transparent}.course-name{font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1.15;background:none;border:0;padding:0;text-align:left;cursor:pointer}.course-name:hover{text-decoration:underline}.course-meta{font-family:var(--font-meta);font-size:10px;color:var(--muted);margin-top:3px;letter-spacing:.02em}.course-expanded{background:var(--card);margin:0 -8px;padding:11px 8px 8px;border-top:1px solid var(--ink)}.course-expanded .course-row{border-top:0;padding-top:0}.course-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.empty-frame{display:flex;flex-direction:column;justify-content:center;border:1px solid var(--ink);background:var(--card);padding:22px 16px;min-height:220px}.empty-frame p{margin:0 0 16px;font-size:15px;line-height:1.45;color:var(--ink-soft)}.empty-frame .btn-primary{align-self:flex-start}.chase{border:1px solid var(--ink);background:var(--card);padding:12px;margin-bottom:16px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;width:100%;display:block}.chase-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.chase-name{font-family:var(--font-display);font-size:18px;font-weight:700}.chase-n{font-family:var(--font-meta);font-size:11px;color:var(--muted)}.chase-bar{margin-top:10px;height:3px;background:var(--paper-2)}.chase-bar i{display:block;height:100%;background:var(--forest)}.bottom-nav{flex:0 0 auto;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);background:var(--paper);padding:6px 0 10px;z-index:40}.bottom-nav button{text-align:center;color:var(--muted);font-family:var(--font-meta);font-size:9px;letter-spacing:.08em;text-transform:uppercase;border:0;border-top:2px solid transparent;background:transparent;padding:4px 2px 0;margin-top:-2px;border-radius:0;cursor:pointer}.bottom-nav button.active{color:var(--ink);font-weight:700;border-top-color:var(--ink)}.bottom-nav button svg{display:block;margin:0 auto 3px;width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.6}.app-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:11px 14px;border-bottom:1px solid var(--ink);background:var(--paper);position:relative;z-index:30}.app-header img.mark{height:22px;width:auto;cursor:pointer}.avatar-btn{width:28px;height:28px;border:1px solid var(--ink);background:var(--paper);display:grid;place-items:center;font-family:var(--font-meta);font-size:10px;color:var(--ink);border-radius:0;padding:0;position:relative}.menu-panel{position:absolute;right:14px;top:calc(100% - 1px);width:220px;background:var(--card);border:1px solid var(--ink);z-index:40;padding:8px}.menu-panel button{width:100%;display:flex;align-items:center;gap:8px;text-align:left;background:transparent;border:0;color:var(--ink);font-size:13px;padding:8px 6px;border-radius:0}.menu-panel button:hover{background:var(--paper-2)}.auth-wrap{width:min(380px,100%);color:var(--ink)}.auth-rule{height:1px;background:var(--ink);opacity:.35;margin:0 0 18px}.auth-panel{background:var(--card);border:1px solid var(--ink);border-bottom-width:2px;padding:18px 16px 16px}.auth-alert{font-family:var(--font-meta);font-size:11px;color:var(--danger);border:1px solid var(--danger);padding:8px 9px;margin:0 0 12px}.auth-alert.notice{color:var(--ink-soft);border-color:var(--line)}.auth-label{display:block;font-family:var(--font-meta);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 5px}.auth-field{margin:0 0 12px}.auth-field input{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:8px 0;font-size:15px;color:var(--ink);border-radius:0}.auth-field input:focus{outline:none;border-bottom-color:var(--forest)}.auth-field input.bad{border-bottom-color:var(--danger)}.auth-hint{margin:4px 0 0;font-size:12px;color:var(--muted)}.loading-spinner{border:3px solid var(--paper-2);border-top:3px solid var(--forest);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.slider-thumb::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:16px;width:16px;border-radius:0;background:var(--forest);cursor:pointer;border:1px solid var(--ink)}.slider-thumb::-moz-range-thumb{height:16px;width:16px;border-radius:0;background:var(--forest);cursor:pointer;border:1px solid var(--ink)}.status-indicator,.status-played,.status-wishlist,.status-unplayed{font-family:var(--font-meta);font-size:9px;letter-spacing:.12em;text-transform:uppercase;border-radius:0;box-shadow:none;padding:4px 5px}@media (max-width: 640px){h1{font-size:1.7rem}h2{font-size:1.25rem}}a.btn-primary,a.btn-ghost{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}a.btn-primary{color:var(--paper)}a.btn-ghost{color:var(--ink)}.public-course-shell{--ground: #f4f4f2;--raised: #ffffff;--raised-hi: #fafafa;--ink: #121412;--muted: #6a6f6a;--muted-soft: #8a8f8a;--accent: #0f5c3a;--accent-hi: #1a6b45;--shadow-d: rgba(0, 0, 0, .12);--shadow-l: rgba(255, 255, 255, .7);--font-display: "Sora", "Segoe UI", system-ui, sans-serif;--font-body: "DM Sans", "Segoe UI", system-ui, sans-serif;--r: 20px;--r-sm: 16px;--r-btn: 16px;--raise: 8px 8px 18px var(--shadow-d), -6px -6px 14px var(--shadow-l);--raise-sm: 5px 5px 12px var(--shadow-d), -4px -4px 10px var(--shadow-l);--raise-cta: 6px 10px 18px rgba(0, 0, 0, .16), 0 4px 12px rgba(15, 92, 58, .22), -3px -3px 10px rgba(255, 255, 255, .35);--recess: inset 5px 5px 12px rgba(0, 0, 0, .1), inset -4px -4px 10px rgba(255, 255, 255, .65);--edge: inset 0 1px 0 rgba(255, 255, 255, .85);--hairline: rgba(18, 20, 18, .06);min-height:100vh;display:flex;flex-direction:column;background:var(--ground);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}.public-course-shell h1,.public-course-shell h2,.public-course-shell h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.04em;line-height:1.05;color:var(--ink)}.public-course-shell .sec{margin:0 0 14px;font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--muted-soft);letter-spacing:.02em;text-transform:none}.public-course-shell .brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:inherit}.public-course-shell .brand .mark{width:14px;height:14px;flex-shrink:0}.public-course-shell .brand .wordmark{font-family:var(--font-display);font-size:14px;font-weight:700;letter-spacing:-.045em;color:var(--ink)}.public-course-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 22px 14px;background:var(--ground);box-shadow:0 1px 0 var(--hairline)}.public-course-header-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.public-course-shell .header-signin{font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--muted);text-decoration:none;letter-spacing:-.01em;padding:8px 4px}.public-course-shell .header-signin:hover{color:var(--ink)}.public-course-shell .btn-primary{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 18px;border:0;border-radius:var(--r-btn);background:linear-gradient(180deg,var(--accent-hi) 0%,var(--accent) 100%);color:#fff;font-family:var(--font-body);font-size:14px;font-weight:600;letter-spacing:-.015em;cursor:pointer;text-decoration:none;box-shadow:var(--raise-cta),inset 0 1px #ffffff38}.public-course-shell .btn-primary:active{box-shadow:inset 3px 3px 8px #00000047,inset -2px -2px 6px #ffffff1a;transform:translateY(1px)}.public-course-shell .btn-primary:disabled{opacity:.55;cursor:not-allowed}.public-course-shell .btn-recess{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 18px;border:0;border-radius:var(--r-sm);background:var(--ground);box-shadow:var(--recess);font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--ink);letter-spacing:-.01em;cursor:pointer;text-decoration:none}.public-course-shell .btn-recess:active{box-shadow:var(--raise-sm),var(--edge);background:var(--raised-hi)}.public-course-shell a.btn-primary{color:#fff}.public-course-shell a.btn-recess{color:var(--ink);text-decoration:none}.public-course-main{flex:1;width:min(640px,calc(100% - 44px));margin:0 auto;padding:24px 0 40px}.public-course-empty{display:flex;flex-direction:column;justify-content:center;background:var(--ground);border-radius:var(--r);padding:36px 24px;box-shadow:var(--recess);min-height:220px}.public-course-empty p{margin:0 0 16px;font-size:15px;line-height:1.45;color:var(--ink)}.public-course-hero h1{font-size:clamp(1.75rem,5vw,2rem);margin:0 0 8px}.public-course-location{margin:0;font-size:13px;font-weight:400;color:var(--muted-soft);letter-spacing:-.01em}.public-course-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.public-course-action-signin{margin:12px 0 0;font-size:13px;line-height:1.45;color:var(--muted);letter-spacing:-.01em}.public-course-action-signin a{color:var(--accent);font-weight:600;text-decoration:none}.public-course-action-signin a:hover{text-decoration:underline;text-underline-offset:3px}.public-course-shell .recess-panel{background:var(--ground);border-radius:var(--r);box-shadow:var(--recess);border:0}.public-course-shell .raised-card{background:var(--raised);border-radius:var(--r);box-shadow:var(--raise),var(--edge);border:0;padding:6px 0}.public-course-status{margin-top:16px}.public-course-shell .status-stamp{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:11px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;padding:4px 10px 4px 5px;border-radius:999px;line-height:1}.public-course-shell .status-stamp-icon{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.public-course-shell .status-stamp.played{background:#0f5c3a29;color:#084a2f;box-shadow:inset 0 0 0 1px #0f5c3a57}.public-course-shell .status-stamp.played .status-stamp-icon{background:linear-gradient(180deg,var(--accent-hi) 0%,var(--accent) 100%);color:#fff;box-shadow:var(--raise-sm)}.public-course-shell .status-stamp.wishlist{background:#c47a0f29;color:#8a4f06;box-shadow:inset 0 0 0 1px #c47a0f66}.public-course-shell .status-stamp.wishlist .status-stamp-icon{background:linear-gradient(180deg,#d4921a,#b45309);color:#fff;box-shadow:var(--raise-sm)}.public-course-detail{margin-top:28px}.public-course-detail-row{display:grid;grid-template-columns:minmax(88px,32%) 1fr;gap:12px;padding:14px 20px;font-size:14px;line-height:1.4;color:var(--ink);letter-spacing:-.01em}.public-course-detail-row+.public-course-detail-row{border-top:1px solid var(--hairline)}.public-course-detail-label{font-size:12px;font-weight:500;color:var(--muted-soft);letter-spacing:-.01em}.public-course-detail-row a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;font-weight:500;word-break:break-word}.public-course-note{margin:24px 0 0;font-size:13px;line-height:1.45;color:var(--muted-soft);letter-spacing:-.01em}.public-course-footer{border-top:1px solid var(--hairline);padding:20px 22px 28px;text-align:center;font-size:13px;color:var(--muted-soft);background:var(--ground)}.public-course-footer a{color:var(--ink);font-weight:600;text-decoration:none;letter-spacing:-.01em}.hover\:opacity-80:hover{opacity:.8}@media (min-width: 640px){.sm\:inline{display:inline}}
