*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--c-bg);color:var(--c-text);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Pretendard,Segoe UI,Roboto,Noto Sans KR,sans-serif;font-size:var(--type-body-size);line-height:var(--type-body-height);letter-spacing:var(--type-body-spacing);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.topbar{align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xxl);border-bottom:1px solid var(--c-border);background:var(--c-surface);display:flex}.wordmark{font-size:var(--type-section-size);letter-spacing:-.6px;font-weight:800}.topbarSpacer{flex:1}.topbarNote{font-size:var(--type-caption-size);color:var(--c-text-tertiary)}.sessionChip{align-items:center;gap:var(--space-xs);border:1px solid var(--c-border);background:var(--c-surface-sunken);font-size:var(--type-caption-size);color:var(--c-text-secondary);white-space:nowrap;border-radius:999px;padding:4px 10px;display:inline-flex}.sessionChipWarn{border-color:var(--c-warning);background:var(--c-warning-subtle);color:var(--c-warning);font-weight:700}.sessionDot{background:var(--c-text-secondary);border-radius:50%;width:6px;height:6px}.authBanner{gap:var(--space-xs);padding:var(--space-md) var(--space-xxl);border-bottom:1px solid var(--c-border);background:var(--c-surface-sunken);font-size:var(--type-caption-size);color:var(--c-text-secondary);flex-direction:column;display:flex}.authBannerWarn{border-bottom-color:var(--c-warning);background:var(--c-warning-subtle)}.authBannerTitle{font-size:var(--type-body-size);color:var(--c-text);letter-spacing:-.3px;font-weight:700}.authBannerBody{color:var(--c-text-secondary)}.authBannerCode{color:var(--c-text-tertiary);font-variant-numeric:tabular-nums}@media (max-width:640px){.authBanner{padding:var(--space-md) var(--space-lg)}}.signIn{align-items:center;gap:var(--space-md) var(--space-lg);padding:var(--space-md) var(--space-xxl);border-bottom:1px solid var(--c-border);background:var(--c-surface);font-size:var(--type-caption-size);flex-wrap:wrap;display:flex}.signInHead{flex-direction:column;flex:22rem;gap:2px;display:flex}.signInActions{gap:var(--space-xs);flex-direction:column;align-items:flex-start;display:flex}.signInButton{border:1px solid var(--c-text);border-radius:var(--radius-tight);background:var(--c-text);color:var(--c-text-inverse);font-size:var(--type-caption-size);letter-spacing:-.2px;cursor:pointer;padding:9px 18px;font-weight:700}.signInButton:hover{opacity:.88}.signInButton[disabled]{opacity:.55;cursor:default}.signInHint{color:var(--c-text-tertiary)}.signInFail{gap:var(--space-xs);padding:var(--space-md);border:1px solid var(--c-warning);border-radius:var(--radius-tight);background:var(--c-warning-subtle);flex-direction:column;flex:100%;display:flex}.signInEmail{gap:var(--space-xs);flex-wrap:wrap;align-items:center;display:flex}.signInInput{border:1px solid var(--c-border);border-radius:var(--radius-tight);background:var(--c-bg);min-width:13rem;color:var(--c-text);font-size:var(--type-caption-size);padding:8px 10px}.signInInput:disabled{opacity:.55}.signInButtonAlt{border:1px solid var(--c-border);border-radius:var(--radius-tight);background:var(--c-bg);color:var(--c-text);font-size:var(--type-caption-size);cursor:pointer;padding:8px 14px;font-weight:600}.signInButtonAlt:hover{border-color:var(--c-text)}.signInButtonAlt[disabled]{opacity:.5;cursor:default}.signInSent{gap:var(--space-xs);padding:var(--space-md);border:1px solid var(--c-border);border-radius:var(--radius-tight);background:var(--c-bg);flex-direction:column;flex:100%;display:flex}.signInLinkButton{color:var(--c-text-tertiary);font-size:var(--type-caption-size);cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:0;text-decoration:underline}@media (max-width:640px){.signIn{padding:var(--space-md) var(--space-lg)}}.page{max-width:980px;padding:var(--space-xxl);margin:0 auto}.pageHead{align-items:baseline;gap:var(--space-md);margin-bottom:var(--space-xl);display:flex}h1{font-size:var(--type-title-size);font-weight:var(--type-title-weight);letter-spacing:var(--type-title-spacing);line-height:var(--type-title-height);margin:0}.count{color:var(--c-text-tertiary);font-size:var(--type-caption-size)}.cards{gap:var(--space-lg);flex-direction:column;display:flex}.card{gap:var(--space-xl);padding:var(--space-xl);border:1px solid var(--c-border);border-radius:var(--radius-card);background:var(--c-surface);grid-template-columns:150px 1fr;transition:border-color .12s;display:grid}.card:hover{border-color:var(--c-border-strong)}@media (max-width:640px){.card{grid-template-columns:1fr}.page{padding:var(--space-lg)}}.cardTitle{font-size:var(--type-section-size);font-weight:var(--type-section-weight);letter-spacing:var(--type-section-spacing);margin:0 0 var(--space-xs)}.cardMeta{color:var(--c-text-secondary);font-size:var(--type-caption-size);margin:0}.cardStops{color:var(--c-text-tertiary);font-size:var(--type-caption-size);margin:var(--space-xs) 0 0}.cardFoot{align-items:center;gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;display:flex}.cardFootSpacer{flex:1}.open{border:1px solid var(--c-border-strong);border-radius:var(--radius-tight);font-size:var(--type-caption-size);color:var(--c-text);padding:7px 16px;font-weight:700}.open:hover{background:var(--c-surface-sunken)}.plate{aspect-ratio:4/3;border-radius:var(--radius-tile);background:var(--c-surface-sunken);position:relative;overflow:hidden}.plateEmpty{text-align:center;padding:var(--space-md);color:var(--c-text-tertiary);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-spacing);justify-content:center;align-items:center;display:flex}.trace{position:absolute;inset:0}.trace>svg{width:100%;height:100%;position:absolute;inset:0}.traceDot{border:2.5px solid var(--c-trace-casing);border-radius:50%;width:13px;height:13px;margin-top:-6.5px;margin-left:-6.5px;position:absolute}.badge{background:var(--c-surface-sunken);color:var(--c-text-secondary);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-spacing);white-space:nowrap;border-radius:999px;padding:4px 9px;display:inline-block}.badgeWarn{background:var(--c-warning-subtle);color:var(--c-warning)}.badgeSeason{color:var(--c-season)}.card,.workspace{--c-season:var(--c-season-l,var(--c-text-secondary))}@media (prefers-color-scheme:dark){.card,.workspace{--c-season:var(--c-season-d,var(--c-text-secondary))}}.notice{border:1px solid var(--c-border);border-radius:var(--radius-card);background:var(--c-surface);padding:var(--space-xxl)}.noticeWarn{border-color:var(--c-warning);background:var(--c-warning-subtle)}.noticeTitle{margin:0 0 var(--space-sm);font-size:var(--type-section-size);font-weight:var(--type-section-weight);letter-spacing:var(--type-section-spacing)}.noticeBody{color:var(--c-text-secondary);margin:0}.noticeBody+.noticeBody{margin-top:var(--space-sm)}.noticeBody code{background:var(--c-surface-sunken);border-radius:6px;padding:1px 5px;font-size:.92em}.workspace{grid-template-columns:380px 1fr;min-height:calc(100vh - 62px);display:grid}@media (max-width:900px){.workspace{grid-template-columns:1fr}}.timelinePane{border-right:1px solid var(--c-border);padding:var(--space-xl);background:var(--c-surface)}.paneHead{align-items:baseline;gap:var(--space-sm);margin-bottom:var(--space-lg);display:flex}.paneLabel{font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-spacing);color:var(--c-text-tertiary)}.day+.day{margin-top:var(--space-xl)}.dayHead{align-items:baseline;gap:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:1px solid var(--c-border);margin-bottom:var(--space-md);display:flex}.dayDate{letter-spacing:-.4px;font-weight:700}.dayIndex{font-size:var(--type-caption-size);color:var(--c-text-tertiary)}.seg{gap:var(--space-md);padding:var(--space-sm) 0;grid-template-columns:46px 1fr;display:grid}.segTime{font-size:var(--type-caption-size);color:var(--c-text-secondary);font-variant-numeric:tabular-nums;padding-top:2px;font-weight:700}.segMove .segTime{color:var(--c-text-tertiary);font-weight:600}.segMove .segName{color:var(--c-text-secondary);font-weight:600}.segName{letter-spacing:-.3px;font-weight:700}.segSub{color:var(--c-text-tertiary);font-size:var(--type-caption-size);margin-top:2px}.segBadges{gap:var(--space-xs);margin-top:var(--space-xs);flex-wrap:wrap;display:flex}.segRail{padding-left:var(--space-md);position:relative}.segRail:before{content:"";background:var(--c-border-strong);border-radius:1px;width:2px;position:absolute;top:0;bottom:0;left:0}.segRailUncertain:before{background:repeating-linear-gradient(to bottom, var(--c-track-uncertain) 0 4px, transparent 4px 8px)}.planItem{gap:var(--space-md);padding:var(--space-sm) 0;grid-template-columns:28px 1fr;display:grid}.planSeq{font-size:var(--type-caption-size);color:var(--c-text-tertiary);font-variant-numeric:tabular-nums;font-weight:700}.canvasPane{padding:var(--space-xxl);max-width:760px}@media (max-width:900px){.canvasPane{padding:var(--space-lg)}}.draftHead{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm);flex-wrap:wrap;display:flex}.badgeStage{border:1px solid var(--c-season);color:var(--c-season);background:0 0;font-weight:700}.draftStamp{font-size:var(--type-caption-size);color:var(--c-text-tertiary);font-variant-numeric:tabular-nums;margin-left:auto}.draftNote{margin:0 0 var(--space-xl);color:var(--c-text-secondary)}.draftActions{align-items:flex-start;gap:var(--space-lg);margin-bottom:var(--space-xl);flex-wrap:wrap;display:flex}.draftCreate{gap:var(--space-xs);flex-direction:column;max-width:380px;display:flex}.draftCopy{gap:var(--space-xs);flex-direction:column;display:flex}.draftCopyNote,.draftHint{font-size:var(--type-caption-size);color:var(--c-text-tertiary);margin:0}.draftCopyNoteWarn{color:var(--c-warning)}.open[disabled]{opacity:.55;cursor:default}.flagPanel{margin-bottom:var(--space-xl);border:1px solid var(--c-border);border-radius:var(--radius-card);padding:var(--space-md) var(--space-lg)}.flagPanel summary{cursor:pointer;font-size:var(--type-caption-size);color:var(--c-text-secondary)}.flagPanel[open] summary{margin-bottom:var(--space-md)}.flagGroup+.flagGroup{margin-top:var(--space-lg)}.flagGroupLabel{margin:0 0 var(--space-xs);font-size:var(--type-caption-size);color:var(--c-text-secondary);font-weight:600}.flagGroupLabel span{color:var(--c-text-tertiary);font-weight:400}.flagPanel ul{padding-left:var(--space-lg);margin:0}.flagPanel li+li{margin-top:var(--space-sm)}.flagExcerpt{color:var(--c-text-primary);display:block}.flagWhy{font-size:var(--type-caption-size);color:var(--c-text-tertiary);display:block}.draftResult{margin:var(--space-xs) 0 0;font-size:var(--type-caption-size);color:var(--c-text-secondary)}.draftResultWarn{color:var(--c-warning);font-weight:600}.draftResult code{background:var(--c-surface-sunken);border-radius:6px;padding:1px 5px}.draftBody{border:1px solid var(--c-border);border-radius:var(--radius-card);background:var(--c-surface);padding:var(--space-xxl)}@media (max-width:640px){.draftBody{padding:var(--space-lg)}}.draftTitle{margin:0 0 var(--space-xl);font-size:var(--type-title-size);font-weight:var(--type-title-weight);letter-spacing:var(--type-title-spacing);line-height:var(--type-title-height)}.draftDay+.draftDay{margin-top:var(--space-xl)}.draftLine{gap:var(--space-md);padding:var(--space-sm) 0;grid-template-columns:46px 1fr;display:grid}.draftLineMove .segTime{color:var(--c-text-tertiary);font-weight:600}.draftLineMove .draftText{color:var(--c-text-secondary)}.draftText{line-height:var(--type-body-height)}.draftPlain{margin:var(--space-lg) 0 0;padding:var(--space-xxl);border:1px solid var(--c-border);border-radius:var(--radius-card);background:var(--c-surface);font-family:inherit;font-size:var(--type-body-size);line-height:var(--type-body-height);white-space:pre-wrap;overflow-x:auto}.versions{margin-top:var(--space-xxl)}.versionRow{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border:1px solid var(--c-border);border-radius:var(--radius-tight);background:var(--c-surface);display:flex}.versionRow+.versionRow{margin-top:var(--space-xs)}.versionRow:hover{border-color:var(--c-border-strong)}.versionRowOn{border-color:var(--c-season)}.versionNo{font-variant-numeric:tabular-nums;font-weight:700}.versionStamp{font-size:var(--type-caption-size);color:var(--c-text-tertiary);font-variant-numeric:tabular-nums;flex:1}.missing{margin-top:var(--space-xxl);padding-top:var(--space-xl);border-top:1px solid var(--c-border)}.missingTitle{margin:0 0 var(--space-sm);font-size:var(--type-body-size);letter-spacing:-.3px;color:var(--c-text-secondary);font-weight:700}.missingBody{font-size:var(--type-caption-size);color:var(--c-text-tertiary);margin:0;line-height:1.65}.missingBody+.missingBody{margin-top:var(--space-sm)}.notesPane{margin-top:var(--space-xxl)}.note{border:1px solid var(--c-border);border-left:3px solid var(--c-season,var(--c-border-strong));border-radius:var(--radius-tight);background:var(--c-surface);padding:var(--space-md) var(--space-lg);margin-top:var(--space-sm)}.noteMoved{border-left-color:var(--c-warning)}.noteHead{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs);flex-wrap:wrap;display:flex}.noteWhere{font-size:var(--type-caption-size);color:var(--c-text-secondary);font-weight:700}.noteSpacer{flex:1}.badgeOff{border:1px solid var(--c-border-strong);color:var(--c-text-tertiary);background:0 0}.noteNotice{margin:0 0 var(--space-xs);font-size:var(--type-caption-size);color:var(--c-warning);font-weight:600}.noteBody{white-space:pre-wrap;overflow-wrap:anywhere;line-height:var(--type-body-height);margin:0}.noteInline{margin:0 0 var(--space-sm) 72px}@media (max-width:900px){.noteInline{margin-left:var(--space-lg)}}.notesLoose{margin-top:var(--space-xl)}.noteFoot{align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.noteHint{font-size:var(--type-caption-size);color:var(--c-text-tertiary)}.noteConfirm{align-items:center;gap:var(--space-xs);flex-wrap:wrap;display:flex}.noteConfirmAsk{font-size:var(--type-caption-size);color:var(--c-warning);font-weight:700}.openWarn{border-color:var(--c-danger);color:var(--c-danger)}.noteStale{margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);border:1px dashed var(--c-warning);border-radius:var(--radius-tight);background:var(--c-warning-subtle)}.noteStaleTitle{margin:0 0 var(--space-xs);font-size:var(--type-caption-size);color:var(--c-warning);font-weight:700}.noteComposer{gap:var(--space-sm);margin:var(--space-md) 0 var(--space-xl);padding:var(--space-lg);border:1px solid var(--c-border);border-radius:var(--radius-tight);background:var(--c-surface);flex-direction:column;display:flex}.noteComposerTitle{font-size:var(--type-section-size);letter-spacing:-.4px;margin:0;font-weight:800}.noteField{gap:var(--space-xs);flex-direction:column;display:flex}.noteFieldLabel{font-size:var(--type-caption-size);color:var(--c-text-secondary);font-weight:700}.noteSelect,.noteInput{width:100%;padding:var(--space-sm) var(--space-md);border:1px solid var(--c-border-strong);border-radius:var(--radius-tight);background:var(--c-bg);color:var(--c-text);font-family:inherit;font-size:var(--type-body-size);line-height:var(--type-body-height)}.noteInput{resize:vertical}.noteCount{font-size:var(--type-caption-size);color:var(--c-text-tertiary);font-variant-numeric:tabular-nums;align-self:flex-end}.noteActions{align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.noteEdit{gap:var(--space-xs);flex-direction:column;display:flex}.noteTransfer{margin:var(--space-xs) 0 0}.noteTransferCounts{color:var(--c-text-tertiary);font-size:var(--type-caption-size);font-variant-numeric:tabular-nums}body:has(.apkPage) .signIn{display:none}.apkCard{border:1px solid var(--c-border);border-radius:var(--radius-card);background:var(--c-surface);max-width:420px;padding:var(--space-xxl)}.apkName{font-size:var(--type-title-size);font-weight:var(--type-title-weight);letter-spacing:var(--type-title-spacing);margin:0}.apkStamp{margin:2px 0 var(--space-xl);color:var(--c-text-secondary);font-size:var(--type-caption-size);font-variant-numeric:tabular-nums}.apkGet{border:1px solid var(--c-text);border-radius:var(--radius-tight);background:var(--c-text);color:var(--c-text-inverse);font-size:var(--type-body-size);letter-spacing:-.2px;text-align:center;padding:14px 18px;font-weight:700;text-decoration:none;display:block}.apkGet:hover{opacity:.88}.apkFacts{gap:var(--space-sm);margin:var(--space-xl) 0 0;font-size:var(--type-caption-size);display:grid}.apkFacts>div{gap:var(--space-md);grid-template-columns:84px 1fr;display:grid}.apkFacts dt{color:var(--c-text-tertiary)}.apkFacts dd{color:var(--c-text-secondary);overflow-wrap:anywhere;margin:0}.apkMono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.apkStale{max-width:420px;margin:0 0 var(--space-lg)}.apkMissing{margin:var(--space-sm) 0;color:var(--c-text-secondary);font-size:var(--type-caption-size);padding-left:1.1em}.apkMissing li{margin:2px 0}.apkFresh{margin-left:var(--space-sm);background:var(--c-surface-sunken);color:var(--c-text-secondary);font-size:var(--type-label-size);font-weight:var(--type-label-weight);letter-spacing:var(--type-label-spacing);border-radius:999px;padding:2px 8px;display:inline-block}.segShots{gap:var(--space-sm);margin-top:var(--space-sm);flex-wrap:wrap;display:flex}.segShot{object-fit:cover;border-radius:var(--radius-tight);border:1px solid var(--c-border);background:var(--c-surface-sunken);width:96px;height:96px;display:block}.segShotBtn{cursor:pointer;border-radius:var(--radius-tight);background:0 0;border:0;padding:0;line-height:0}.segShotBtn:focus-visible{outline:2px solid var(--c-text);outline-offset:2px}.shotLightbox{z-index:100;padding:var(--space-lg);background:#000000d1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.shotLightboxImg{object-fit:contain;border-radius:var(--radius-tight);max-width:100%;max-height:calc(100vh - 7rem)}.shotLightboxClose{top:calc(env(safe-area-inset-top,0px) + var(--space-md));right:calc(env(safe-area-inset-right,0px) + var(--space-md));padding:var(--space-xs) var(--space-md);background:var(--c-surface);color:var(--c-text);font-size:var(--type-label-size);font-weight:var(--type-label-weight);cursor:pointer;border:0;border-radius:999px;position:absolute}
