:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17201e;background:#111817;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#111817}button,input{font:inherit}button:focus-visible,input:focus-visible{outline:3px solid rgba(19,132,120,.28);outline-offset:2px}.app-shell{min-height:100vh;display:grid;grid-template-columns:minmax(390px,450px) minmax(0,1fr);background:#111817}.game-panel{position:relative;z-index:2;min-height:100vh;padding:24px 28px 30px;overflow-y:auto;border-right:1px solid #d8d4c9;background:#f3f0e8;color:#17201e}.game-header,.brand-row,.progress-readout,.stage-meta,.code-row,.modal-actions{display:flex;align-items:center}.game-header{justify-content:space-between;gap:20px}.brand-row{gap:12px}.brand-row>svg{color:#138478}.brand-row div{display:grid;gap:2px}.brand-row strong{font-size:18px;line-height:1.2}.eyebrow{margin:0;color:#138478;font-size:11px;line-height:1.3;letter-spacing:0;text-transform:uppercase;font-weight:850}.icon-button{flex:0 0 auto;display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #cbc7bc;border-radius:7px;background:transparent;color:#5b625f;cursor:pointer;transition:color .18s ease,border-color .18s ease,background .18s ease}.icon-button:hover{color:#138478;border-color:#138478;background:#1384780f}.stage-track{position:relative;display:grid;grid-template-columns:repeat(8,1fr);gap:7px;margin-top:26px}.stage-track:before{content:"";position:absolute;z-index:0;top:14px;left:15px;right:15px;height:1px;background:#cbc7bc}.stage-track span{position:relative;z-index:1;display:inline-grid;place-items:center;width:29px;height:29px;border:1px solid #c7c4ba;border-radius:50%;background:#f3f0e8;color:#8c918e;font-size:11px;font-weight:800}.stage-track span.is-active{border-color:#d49735;color:#8f5c0d;box-shadow:0 0 0 4px #d4973521}.stage-track span.is-done{border-color:#138478;background:#138478;color:#fff}.progress-readout{justify-content:space-between;margin-top:11px;color:#717774;font-size:11px;font-weight:700}.task-panel{padding-top:36px;animation:panelIn .35s ease both}.stage-meta{justify-content:space-between;gap:18px;padding-bottom:14px;border-bottom:1px solid #d8d4c9;color:#7a7f7c;font-size:11px;line-height:1.3;font-weight:750;text-transform:uppercase}.stage-meta span:last-child{text-align:right}.task-panel h1,.success-panel h2,.final-panel h1,.confirm-modal h2{margin:18px 0 0;letter-spacing:0}.task-panel h1{max-width:390px;font-family:Georgia,Times New Roman,serif;font-size:40px;line-height:1.02;font-weight:600}.biography-text{margin:17px 0 0;color:#555e5a;font-size:15px;line-height:1.55}blockquote{margin:18px 0 0;padding:13px 0 13px 17px;border-left:3px solid #e26c5a;color:#3d4743;font-family:Georgia,Times New Roman,serif;font-size:14px;line-height:1.48}.task-panel>h2{margin:25px 0 0;color:#26312e;font-size:17px;line-height:1.42;letter-spacing:0}.answer-zone{margin-top:18px}.choice-grid,.file-grid{display:grid;gap:8px}.answer-button,.file-button{min-height:48px;padding:12px 14px;border:1px solid #cbc7bc;border-radius:7px;background:#ffffff61;color:#26312e;text-align:left;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.answer-button:hover,.file-button:hover:not(:disabled){transform:translate(3px);border-color:#138478;background:#1384780f}.compact-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.check-answer{display:grid;grid-template-columns:23px minmax(0,1fr);align-items:center;gap:10px}.check-box{display:inline-grid;place-items:center;width:21px;height:21px;border:1px solid #aaa99f;border-radius:4px}.check-answer.is-selected{border-color:#138478;background:#13847814}.check-answer.is-selected .check-box{border-color:#138478;background:#138478;color:#fff}.primary-button,.paddle-button,.hold-button,.quiet-button,.danger-button,.hint-button{border-radius:7px;cursor:pointer}.primary-button,.paddle-button{min-height:47px;padding:12px 17px;border:1px solid #116e65;background:#138478;color:#fff;font-weight:780;transition:background .16s ease,transform .16s ease,opacity .16s ease}.answer-zone>.primary-button{width:100%;margin-top:10px}.primary-button:hover:not(:disabled),.paddle-button:hover:not(:disabled){transform:translateY(-1px);background:#0f7168}.primary-button:disabled,.paddle-button:disabled{cursor:not-allowed;opacity:.45}.hint-button{display:inline-flex;align-items:center;gap:7px;margin-top:13px;padding:5px 0;border:0;background:transparent;color:#6b716e;font-size:13px}.hint-button:hover{color:#8f5c0d}.feedback{margin:12px 0 0;padding:10px 12px;border-left:3px solid currentColor;color:#a54437;background:#e26c5a14;font-size:13px;line-height:1.42}.feedback-hint{color:#8f5c0d;background:#d497351a}.feedback-signal{color:#0f7168;background:#13847814}.code-label{display:block;margin-bottom:7px;color:#6c736f;font-size:12px;font-weight:750}.code-row{gap:9px;align-items:stretch}.code-input{width:92px;min-height:54px;padding:7px 11px;border:1px solid #aaa99f;border-radius:7px;background:#fff;color:#17201e;font-size:27px;font-weight:850;text-align:center}.code-row .primary-button{flex:1}.fish-tank{position:relative;height:118px;overflow:hidden;border:1px solid #91aaa5;border-radius:7px;background:#d7ece8}.water-lines{position:absolute;left:14px;top:11px;color:#4d9c94}.hit-counter{position:absolute;top:12px;right:14px;color:#39726c;font-size:12px;font-weight:850}.digital-fish{position:absolute;left:48%;top:57%;width:58px;height:34px;transform:translate(-50%,-50%);transition:transform .35s ease,top .35s ease,left .35s ease}.digital-fish i{position:absolute;right:0;top:0;width:44px;height:31px;border:2px solid #245c57;border-radius:50%;background:#e9b759}.digital-fish i:after{content:"";position:absolute;right:8px;top:8px;width:4px;height:4px;border-radius:50%;background:#17201e}.digital-fish span{position:absolute;z-index:1;left:0;top:1px;color:#245c57;font-size:30px;line-height:1;font-weight:900}.fish-state-1 .digital-fish{left:58%;transform:translate(-50%,-50%) rotate(12deg)}.fish-state-2 .digital-fish{left:40%;top:63%;transform:translate(-50%,-50%) rotate(-34deg)}.fish-state-3 .digital-fish{left:52%;top:72%;transform:translate(-50%,-50%) rotate(180deg)}.paddle-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:10px;background:#e26c5a;border-color:#ba4f40}.paddle-button:hover:not(:disabled){background:#c95a49}.sequence-readout{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-bottom:9px}.sequence-readout span{display:grid;place-items:center;min-width:0;height:34px;overflow:hidden;border-bottom:2px solid #bbb9af;color:#8a8e8b;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.sequence-readout span.is-filled{border-color:#138478;color:#0f7168;font-weight:800}.file-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.file-button{min-width:0;overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;line-height:1.3}.file-button small{color:#858b87}.file-button:disabled{opacity:.35;cursor:default}.hold-button{position:relative;width:100%;height:62px;overflow:hidden;padding:0;border:1px solid #b67d23;background:#fff7e6;color:#724704;font-weight:850;-webkit-user-select:none;user-select:none;touch-action:none}.hold-fill{position:absolute;inset:0 auto 0 0;width:var(--hold-progress);background:#e5b04f;transition:width .05s linear}.hold-label{position:relative;z-index:1}.success-panel{padding-top:78px;animation:panelIn .4s ease both}.success-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#138478;color:#fff;box-shadow:0 0 0 8px #1384781a}.success-kicker{margin:26px 0 0;color:#138478;font-size:12px;font-weight:850;text-transform:uppercase}.success-panel h2{font-family:Georgia,Times New Roman,serif;font-size:38px;line-height:1.05;font-weight:600}.success-panel>p:last-of-type{margin:17px 0 0;color:#555e5a;font-size:16px;line-height:1.55}.next-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:28px}.final-panel{padding-top:20px;animation:finalIn .7s ease both}.final-25{margin-top:26px;color:#d49735;font-family:Georgia,Times New Roman,serif;font-size:98px;line-height:.78}.final-panel h1{max-width:390px;color:#202825;font-family:Georgia,Times New Roman,serif;font-size:45px;line-height:1;font-weight:600}.final-lead,.toast-line{color:#515a56;font-size:14px;line-height:1.5}.final-lead{margin:17px 0 0}.final-parameters{margin:24px 0 0;border-top:1px solid #d3cfc4}.final-parameters div{display:grid;grid-template-columns:138px minmax(0,1fr);gap:14px;padding:10px 0;border-bottom:1px solid #d3cfc4}.final-parameters dt{color:#767c79;font-size:11px;font-weight:800;text-transform:uppercase}.final-parameters dd{margin:0;color:#24302c;font-size:13px;font-weight:750}.toast-line{margin:21px 0 0;padding-left:14px;border-left:3px solid #e26c5a;font-family:Georgia,Times New Roman,serif}.quiet-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 13px;border:1px solid #bdbbb2;background:transparent;color:#4f5754;font-size:13px;font-weight:750}.final-panel>.quiet-button{width:100%;margin-top:21px}.quiet-button:hover{border-color:#138478;color:#138478}.danger-button{border-color:#c45243;background:#c45243;color:#fff}.molecule-stage{position:relative;min-width:0;min-height:100vh;display:grid;align-items:center;overflow:hidden;padding:25px;background:#111817}.molecule-stage:before{content:"СТРУКТУРНЫЙ АНАЛИЗ · LIVE";position:absolute;top:25px;right:28px;color:#6f7c78;font-size:10px;font-weight:800}.molecule{width:100%;height:auto;max-height:calc(100vh - 50px);filter:drop-shadow(0 24px 48px rgba(0,0,0,.28))}.grid-backdrop{fill:#111817;stroke:#2a3532}.final-aura{fill:url(#warmCore);opacity:0;transition:opacity .8s ease}.final-aura.is-visible{opacity:.78}.macrocycle{fill:none;stroke:url(#finalBond);stroke-width:6;stroke-linecap:round;stroke-dasharray:2 24;opacity:0;filter:url(#softGlow);transition:opacity .7s ease}.macrocycle.is-visible{opacity:.35;animation:dashFlow 4s linear infinite}.axis-reaction{fill:none;stroke:#e8be5b3b;stroke-width:3;stroke-linecap:round;stroke-dasharray:20 18;opacity:.35}.axis-reaction.is-final{opacity:.72}.fragment{--fragment-color: #74e0d5;color:var(--fragment-color);transition:opacity .45s ease,filter .45s ease}.fragment-tomsk{--fragment-color: #76d7ff}.fragment-olymp{--fragment-color: #a6e36f}.fragment-msu{--fragment-color: #74e0d5}.fragment-side{--fragment-color: #cfa5ff}.fragment-nastya{--fragment-color: #ef8da7}.fragment-moscow{--fragment-color: #f4d17a}.fragment-model{--fragment-color: #89a8ff}.fragment-wedding{--fragment-color: #ffd98c}.fragment.is-locked{opacity:.015;pointer-events:none}.fragment.is-locked .fragment-caption{opacity:0}.fragment.is-target{opacity:.23;filter:grayscale(.72)}.fragment.is-target .fragment-caption{opacity:0}.fragment.is-unlocked{opacity:.78}.fragment.is-active{opacity:1}.fragment.is-new{opacity:1;animation:fragmentReveal 1.5s ease both}.bond{stroke:color-mix(in srgb,var(--fragment-color),white 22%);stroke-width:5;stroke-linecap:round;opacity:.9}.bond-double,.bond-triple{stroke-width:3.2}.bond-dash{stroke-dasharray:9 9}.bond-wedge{fill:color-mix(in srgb,var(--fragment-color),white 18%);stroke:none;opacity:.86}.atom rect{fill:#111817;stroke:color-mix(in srgb,var(--fragment-color),white 20%);stroke-width:2}.atom-label{fill:#f9ffff;text-anchor:middle;dominant-baseline:central;font-size:19px;font-weight:900;letter-spacing:0}.atom-label.compact{font-size:15px}.fragment-caption{opacity:.86;transition:opacity .4s ease}.fragment-stage{fill:var(--fragment-color);font-size:34px;font-weight:900}.fragment-title{fill:#f7fdff;font-size:19px;font-weight:800}.fragment-subtitle{fill:#aebbc6;font-size:13px;font-weight:650}.fragment.is-active .bond,.fragment.is-active .atom rect,.fragment.is-new .bond,.fragment.is-new .atom rect{filter:url(#softGlow)}.fragment.is-active .atom{animation:pulseAtom 1.7s ease-in-out infinite}.fragment.is-active .fragment-title{fill:#fff4c7}.molecule-name{opacity:0;transition:opacity .8s ease .2s}.molecule-name.is-visible{opacity:1}.molecule-name text{fill:#fff3cf;font-size:30px;font-weight:900;letter-spacing:0}.modal-backdrop{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:20px;background:#080d0cad;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.confirm-modal{position:relative;width:min(100%,430px);padding:28px;border:1px solid #d2cec3;border-radius:8px;background:#f3f0e8;box-shadow:0 24px 70px #0000005c}.close-button{position:absolute;top:16px;right:16px}.confirm-modal h2{padding-right:38px;font-size:26px}.confirm-modal>p:not(.eyebrow){color:#5e6662;font-size:14px;line-height:1.5}.modal-actions{justify-content:flex-end;gap:9px;margin-top:23px}@keyframes panelIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes finalIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fragmentReveal{0%{opacity:.05;filter:blur(8px);transform:translateY(7px)}48%{opacity:1;filter:blur(0)}to{opacity:1;transform:translateY(0)}}@keyframes pulseAtom{0%,to{opacity:.88}50%{opacity:1}}@keyframes dashFlow{to{stroke-dashoffset:-52}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.molecule-stage{order:-1;min-height:auto;height:47vh;padding:14px}.molecule{max-height:100%}.game-panel{min-height:53vh;padding:20px 22px 28px;border-right:0;border-top:1px solid #d8d4c9}.task-panel{padding-top:28px}.molecule-stage:before{top:12px;right:15px}}@media(max-width:560px){.molecule-stage{height:34vh;min-height:245px}.game-panel{padding:17px 16px 24px}.brand-row strong{font-size:16px}.brand-row>svg{display:none}.stage-track{gap:3px;margin-top:20px}.stage-track span{width:25px;height:25px;font-size:10px}.stage-track:before{top:12px}.task-panel h1{font-size:34px}.compact-choices,.file-grid{grid-template-columns:1fr}.final-panel h1{font-size:39px}.final-25{font-size:78px}.modal-actions{align-items:stretch;flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
