@import url('legacy-writing.css');
:root{--surface:var(--card);--ink-soft:var(--ink-2);--display:var(--serif);--font-display:var(--serif);--font-body:var(--sans);--font-mono:var(--mono);--teal-soft:#79c7b81a}
[hidden]{display:none!important}.sr-only,.signal-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.cinema-home .site-header{position:sticky;top:0;z-index:120}.cinema-home .nav__in{min-width:0}.cinema-home .dock{min-width:0}.gallery-particles{position:fixed;inset:0;width:100%;height:100%;z-index:100;pointer-events:none}.site-shell{min-width:0}.site-shell>main{overflow:clip}
.signal__in{display:flex;gap:16px;align-items:center}.academy-signal{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px;flex:1;border:0;border-radius:0;padding:8px 0;background:none;box-shadow:none;min-width:0;color:var(--ink)}.academy-signal::before,.signal-footer,.signal-progress{display:none}.signal-clockline{display:flex;gap:12px;align-items:center}.signal-feed{display:flex;gap:10px;min-width:0}.signal-story{min-width:0;flex:1}.signal-story-copy{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;font-size:11px}.signal-controls button{min-height:24px;min-width:24px;padding:2px;background:none;color:var(--ink);border:0}.signal-channel{font-size:10px;white-space:nowrap}.signal-date,.signal-zone{font:10px var(--font-mono);color:var(--ink-2)}.signal-date{gap:5px}.signal-zone{background:none;border:0;display:flex;align-items:center;gap:6px}.signal-zone-name{font-size:9px}.signal__right{flex:none}.signal-zone [data-signal-clock]{display:flex}.signal-zone span span{font-size:10px}.upd{font:inherit;cursor:pointer}.signal-orbit{font-size:14px}.signal-feed .signal-controls{display:flex}
.cover{touch-action:pan-y}.cover .gallery-exhibit,.cover [data-motion-media]{position:absolute;inset:0;pointer-events:none}.cover__video{width:100%;height:100%;object-fit:cover}.cover.is-error .cover__loader,.cover.is-loaded .cover__loader{display:none}.cover.is-reduced-motion .cover__loader{display:none}.cover__cursor{left:var(--cursor-x,50%);top:var(--cursor-y,50%);transform:translate(-50%,-50%)}.cover.has-pointer .cover__cursor{opacity:1}.cover.is-reduced-motion .cover__cursor{display:none}.cover__copy{pointer-events:none}.cover__copy a,.cover__copy button{pointer-events:auto}.cover__title{max-width:9em}.cover__stats{font-variant-numeric:tabular-nums}.cover__index{white-space:nowrap}
.cinema-home .x-film__frame{margin-inline:auto;width:min(100%,1000px);aspect-ratio:16/9;position:relative;overflow:hidden;background:#071b1a}.cinema-home .x-film__frame video{object-fit:contain;background:#071b1a}.x-film__play{z-index:3;font-size:30px;color:#fff}.brand-film-controls{z-index:4}.brand-film-controls button{background:#173b39d9;color:#f4faf8;border-color:#ffffff24}.brand-film-progress i{background:var(--jade)}.x-film__frame:fullscreen{width:100vw;height:100dvh}.x-film__frame video{border-radius:inherit}
.card.writing-entry{scroll-margin-top:180px}.writing-entry .writing-diagram{margin-block:24px;background:transparent;max-width:none;padding:0;border:0;box-shadow:none;backdrop-filter:none;color:#fff}.writing-diagram-top{display:flex;justify-content:space-between}.writing-diagram .writing-node{background:#ffffff08;border-color:#ffffff20;min-height:150px;display:grid;color:#fff}.writing-diagram .writing-node h3{font-size:19px;color:#fff}.writing-diagram .writing-node small{color:#d4e4df}.writing-diagram .writing-number{color:var(--jade);background:#ffffff14}.writing-diagram .writing-track{gap:20px}.writing-diagram .writing-node:last-child{background:#79c7b81a;border-color:#79c7b83d}.writing-diagram .writing-step-icon,.writing-diagram-top{color:var(--jade)}.writing-flow-lines path{stroke:var(--jade);opacity:.7;stroke-width:1.5;stroke-dasharray:6 5!important;animation:flow-current 3s linear infinite}.writing-node.is-highlighted{box-shadow:0 0 0 1px #79c7b8aa!important;background:#79c7b81a!important}.writing-diagram-note{color:#d4e4df;font-size:12px}.writing-entry .x-card-links{margin-top:auto}@keyframes flow-current{to{stroke-dashoffset:-44}}
#shelf .play-grid{display:flex!important;grid-template-columns:none;gap:var(--gap)}#shelf .play-grid .card{flex:0 0 clamp(260px,29vw,350px)}#shelf .play-grid [hidden]{display:none!important}.shelf-summary{font:12px var(--font-mono);color:var(--ink-2);margin-bottom:18px}.x-shelf__desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.x-shelf__card{min-width:0}.feat__cover{margin-top:calc(var(--pad)*-1)}.feat__cover img{object-fit:contain;background:#102b29}.feat__large .feat__cover{aspect-ratio:16/10}.feat__side .feat__cover{aspect-ratio:16/9}.x-shelf__cover img{object-fit:contain;background:#edf3f0}.card__count{font-variant-numeric:tabular-nums}
.cinema-dialog,.updates-dialog,.course-dialog,.writing-video-dialog{width:min(1000px,94vw);max-height:92dvh;padding:24px;border:1px solid var(--line);border-radius:24px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#061e1ccc;backdrop-filter:blur(8px)}.cinema-dialog>header,.writing-video-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px}.cinema-dialog button,.writing-video-dialog button,.updates-dialog button,.course-dialog button{font:inherit;cursor:pointer;min-height:44px;padding:8px 14px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink)}.feedback-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.feedback-form label{display:grid;gap:8px;font-size:14px}.feedback-topic,.feedback-status{grid-column:1/-1}.feedback-form input,.feedback-form textarea,.feedback-form select{width:100%;font:inherit;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink)}.writing-video-dialog{width:min(1440px,96vw)}.writing-video-dialog iframe{display:block;width:100%;height:calc(85dvh - 80px);border:0;border-radius:12px}.writing-video-dialog h2{font-size:18px}.updates-topline{display:flex;justify-content:space-between;gap:20px}.updates-list{display:grid;gap:12px;margin-block:24px}.updates-list a,.updates-list button{display:block;width:100%;text-align:left;border:1px solid var(--line);border-radius:14px;padding:16px;color:var(--ink);background:var(--card)}.updates-list p{color:var(--ink-2)}.updates-actions{display:flex;gap:12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid var(--line);border-radius:12px;color:var(--ink)}.button-primary{background:var(--teal);color:#fff}.button-quiet{background:transparent}.updates-dialog h2{margin-block:12px}.updates-panel{max-width:100%}
#profile-panel{position:fixed;inset:0;z-index:10000;background:var(--paper);display:flex;flex-direction:column}.profile-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--paper);border-bottom:1px solid var(--line);color:var(--ink);font:14px var(--font-body)}.profile-toolbar button,.profile-toolbar a{font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer}#profile-panel iframe{flex:1;width:100%;min-height:0;border:0}.profile-open{overflow:hidden}#share-qr{min-width:0}#share-qr summary{font-size:13px;cursor:pointer;min-height:44px}#share-qr img{max-width:100%;height:auto;width:220px;display:block;margin-block:14px;border-radius:16px}#share-qr a{font-size:12px}#site-footprints{display:block;margin-top:32px}.x-music button{border:0}.x-music__vol input{max-width:90px}.x-music [data-music-title]{font-size:12px}.x-music [data-music-status]{font-size:11px}
#lab-dialog .lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}#lab-dialog .lab-card{padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--card)}#lab-dialog .lab-card h3{font:600 21px var(--font-display)}#lab-dialog .lab-card a{overflow-wrap:anywhere}#lab-dialog img{max-width:100%}#lab-dialog [data-render="labs"]{display:grid;gap:16px}
@media(max-width:1024px){.signal-feed .signal-controls{display:none}.signal-channel{display:none}.academy-signal{gap:12px}.signal-clockline{gap:6px}.signal-weekday{display:none}}
@media(max-width:640px){.signal__in{gap:8px;padding-block:4px}.academy-signal{display:flex;gap:0;padding:0}.signal-feed,.signal-zone-name,.signal-weekday{display:none}.signal-clockline{display:grid;gap:2px}.signal-date{font-size:9px}.signal-date .signal-orbit{display:none}.signal-zone{font-size:10px;padding:0}.signal__right{gap:4px}.signal__right .upd{font-size:10px;padding:6px}.signal__right .upd__badge{min-width:16px;height:16px;font-size:9px}.signal__right .pills button{padding-inline:6px;font-size:10px;min-width:24px}.signal__right .icon-btn{width:34px;height:34px;min-width:34px}.nav__in .brand img{max-width:125px}.cinema-home .nav__in{min-height:72px}.cover__title{font-size:clamp(36px,8.9vw,56px)}.cover__stats{max-width:28em;font-size:11px;line-height:1.8}.cover__copy{padding-bottom:90px}.cover__enter{font-size:11px}.cover__cursor{display:none}.brand-film-controls button{padding:7px 9px;font-size:11px}.brand-film-controls button svg{width:14px}.writing-entry .writing-diagram{padding:0;border-radius:0}.writing-diagram .writing-track{grid-template-columns:1fr 1fr;padding-left:0;gap:12px}.writing-diagram .writing-node{min-height:138px;padding:14px}.writing-diagram .writing-number{position:static;margin-bottom:12px}.writing-diagram .writing-node h3{font-size:16px;padding:0}.writing-diagram .writing-node small{font-size:10px}.writing-step-icon{top:16px;right:14px;width:20px;height:20px}.writing-diagram-top{font-size:7px;gap:12px}.writing-diagram-note{font-size:11px}.feedback-form{grid-template-columns:1fr}.cinema-dialog{padding:18px}.profile-toolbar span{display:none}.profile-toolbar a{font-size:11px}#lab-dialog .lab-grid{grid-template-columns:1fr}.x-film__play{font-size:22px}.x-music__vol{display:none}.foot__grid{min-width:0}#share-qr img{width:170px}.cinema-dialog h2{font-size:21px}.writing-video-dialog h2{font-size:13px}}
@media(prefers-reduced-motion:reduce){.writing-flow-lines path,.gallery-particles{animation:none!important}.cover__video{visibility:hidden}.cover [data-motion-media]{background:url('/assets/motions/oioi-academy-cover/public/poster.jpg') center/cover}.reveal{opacity:1!important;transform:none!important}.x-film-playing .x-film{box-shadow:none}.gallery-particles{display:none!important}}

#lab-dialog .lab-project{display:grid;gap:12px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--card)}#lab-dialog .lab-project h3{font:600 22px var(--font-display);margin-block:10px}#lab-dialog .lab-project-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--ink-2)}#lab-dialog .lab-project-index{font:12px var(--font-mono);color:var(--teal)}#lab-dialog .lab-project p{font-size:14px;line-height:1.8;color:var(--ink-2)}#lab-dialog .lab-project a{font-size:13px;overflow-wrap:anywhere}#lab-dialog .lab-filters{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}#lab-dialog .lab-project-link{justify-self:end}#principles li p{color:var(--ink-2)}
/* 手机封面为文案、统计与底部操作各留出空间。 */
@media(max-width:640px){.cover{min-height:max(760px,calc(100svh - 138px))}.cover__copy{padding-block:150px 166px}.cover__copy>div{max-width:100%}.cover__stats{margin-top:24px;font-size:10px}.cover__row{flex-wrap:nowrap;gap:8px}.cover__row .cover__chip{font-size:9px;letter-spacing:.08em;padding:8px 10px;white-space:nowrap}.cover__enter{font-size:10px;letter-spacing:.08em;padding-inline:14px;white-space:nowrap}.cover__hint--mouse{display:none}.cover__hint--touch{display:inline}.cover__video{object-position:70% center}.cover.is-reduced-motion [data-motion-media]{background-position:70% center}.cover__top .cover__chip{font-size:10px;letter-spacing:.1em}.cover__bottom{bottom:22px}}
@media(max-width:640px){.cover__bottom .cover__row{padding-right:62px}.cover__bottom .cover__bar{margin-right:62px}.cover__enter{font-size:9px;padding-inline:12px}}

.writing-entry .writing-diagram .writing-diagram-note{color:#d4e4df}

/* 移除语言展示卡后，平板和手机的实验室卡片填满末行。 */
@media (min-width:701px) and (max-width:1040px){#overview .home-lab-card{grid-column:span 3}}
@media (max-width:700px){#overview .home-lab-card{grid-column:span 2}}
