/* OpenEduWisdom · 聚合首页：知识星图、教学案例与统一登录 */
:root{--paper:#f7f7fb;--paper-2:#f0eef9;--white:#fff;--ink:#242331;--ink-2:#4b4a5a;--muted:#757386;--purple:#6558d9;--purple-dark:#5848d2;--purple-light:#7b68ee;--purple-soft:#ece9fb;--line:rgba(36,35,49,.12);--line-strong:rgba(36,35,49,.22);--ease:cubic-bezier(.37,.16,.12,1);--hover:cubic-bezier(.52,.08,.18,1);font-family:Inter,"SF Pro Display","PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:var(--paper);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit;color:inherit}button,a,select,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;z-index:200;top:8px;left:8px;padding:10px 14px;background:var(--ink);color:#fff;transform:translateY(-150%)}.skip-link:focus{transform:none}:focus-visible{outline:3px solid rgba(101,88,217,.38);outline-offset:3px}::selection{background:#dcd6ff;color:#312665}
#knowledge-canvas,.paper-grid{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}#knowledge-canvas{z-index:0}.paper-grid{z-index:0;opacity:.34;background-image:linear-gradient(rgba(88,72,210,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(88,72,210,.045) 1px,transparent 1px);background-size:56px 56px;mask-image:linear-gradient(to bottom,black,transparent 78%)}
.portal-body{position:relative;overflow-x:hidden}.portal-header,.portal-main,.portal-footer{position:relative;z-index:2}.portal-header{height:82px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:0 clamp(24px,4vw,64px);border-bottom:1px solid var(--line);background:rgba(247,247,251,.78);backdrop-filter:blur(16px)}.portal-brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}.portal-brand img{width:44px;height:44px}.portal-brand>span{display:flex;flex-direction:column}.portal-brand strong{font-family:Bahnschrift,"Segoe UI",sans-serif;font-size:22px;line-height:1.12;letter-spacing:-.65px;font-weight:400}.portal-brand strong span{font-weight:650;color:var(--purple-dark)}.portal-brand small{margin-top:5px;color:var(--muted);font-size:10px;letter-spacing:.04em}.portal-nav{display:flex;align-items:center;gap:30px;margin-left:auto}.portal-nav a{position:relative;padding:10px 0;color:var(--ink-2);font-size:14px;font-weight:550}.portal-nav a::after{position:absolute;right:0;bottom:4px;left:0;height:1px;background:var(--purple);content:"";transform:scaleX(0);transform-origin:center;transition:transform .5s var(--ease)}.portal-nav a:hover{color:var(--purple-dark)}.portal-nav a:hover::after{transform:scaleX(1)}.portal-actions{display:flex;align-items:center;gap:12px}.motion-toggle{display:inline-flex;align-items:center;gap:6px;padding:8px 9px;border:0;background:transparent;color:var(--muted);font-size:11px}.motion-toggle svg{width:15px;height:15px}.motion-toggle:hover{color:var(--purple-dark)}.login-entry{display:inline-flex;align-items:center;gap:12px;min-height:42px;padding:9px 17px;border:1px solid var(--line-strong);border-radius:10px;background:rgba(255,255,255,.66);font-size:14px;font-weight:650;transition:background .3s var(--hover),color .3s var(--hover),border-color .3s var(--hover)}.login-entry svg{width:17px;height:17px;transition:transform .35s var(--hover)}.login-entry:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.login-entry:hover svg{transform:translateX(3px)}
.portal-main{width:min(1180px,calc(100% - 48px));min-height:calc(100dvh - 128px);margin:0 auto;display:flex;flex-direction:column;justify-content:center;padding:24px 0 26px}.portal-hero{position:relative;text-align:center;animation:enter .8s var(--ease) both}.portal-eyebrow{display:flex;align-items:center;justify-content:center;gap:9px;margin:0 0 15px;color:var(--purple-dark);font-family:Consolas,"Microsoft YaHei",monospace;font-size:11px;font-weight:650;letter-spacing:.16em}.portal-eyebrow>span{width:24px;height:1px;background:var(--purple)}.portal-hero h1{margin:0;font-size:clamp(46px,4.35vw,64px);line-height:1.16;letter-spacing:-.055em;font-weight:760}.portal-hero h1 em{color:var(--purple-dark);font-family:"Songti SC","Noto Serif SC",SimSun,serif;font-style:normal;font-weight:700;letter-spacing:-.045em}.hero-description{margin:18px auto 0;color:var(--ink-2);font-size:16px;line-height:1.85;letter-spacing:.01em}.hero-orbit{position:absolute;z-index:-1;top:-45px;left:calc(50% + 270px);width:220px;height:220px;color:var(--purple);opacity:.16;animation:orbit-spin 32s linear infinite}.hero-orbit svg{width:100%;height:100%;stroke-width:.8}.hero-orbit .orbit-node{fill:var(--purple);stroke:none}.hero-orbit .node-b{fill:#a89df0}.hero-orbit .node-c{fill:#5848d2}
.portal-composer{position:relative;width:min(900px,100%);margin:28px auto 0;overflow:hidden;border:1px solid rgba(88,72,210,.24);border-radius:20px;background:rgba(255,255,255,.9);box-shadow:0 22px 65px -42px rgba(64,48,153,.58),0 2px 7px rgba(42,35,85,.04);text-align:left;transition:border-color .35s var(--hover),box-shadow .35s var(--hover)}.portal-composer:focus-within{border-color:rgba(88,72,210,.62);box-shadow:0 0 0 4px rgba(101,88,217,.09),0 26px 70px -42px rgba(64,48,153,.62)}.portal-composer textarea{display:block;width:100%;min-height:118px;max-height:180px;padding:23px 26px 12px;border:0;outline:0;background:transparent;resize:none;font-size:17px;line-height:1.75}.portal-composer textarea::placeholder{color:#92909f}.portal-composer-bar{min-height:62px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 13px 12px 20px}.composer-left{display:flex;align-items:center;gap:9px;min-width:0}.intent-icon{display:grid;place-items:center;color:var(--purple)}.intent-icon svg{width:18px;height:18px}.composer-left select{max-width:160px;padding:6px 25px 6px 2px;border:0;outline:0;background:transparent;color:var(--ink-2);font-size:13px;font-weight:600;cursor:pointer}.composer-divider{width:1px;height:18px;margin:0 4px;background:var(--line)}.composer-hint{color:var(--muted);font-size:11px;white-space:nowrap}.composer-submit{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:10px 17px;border:0;border-radius:12px;background:var(--purple);color:#fff;font-size:14px;font-weight:680;box-shadow:0 8px 20px -12px rgba(88,72,210,.8);transition:background .3s var(--hover)}.composer-submit svg{width:18px;height:18px;transition:transform .3s var(--hover)}.composer-submit:hover{background:var(--purple-dark)}.composer-submit:hover svg{transform:translateY(-2px)}.prompt-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:14px;color:var(--muted);font-size:12px}.prompt-row>span{margin-right:2px}.prompt-row button{padding:6px 11px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink-2);font-size:12px;transition:background .25s,border-color .25s}.prompt-row button:hover{border-color:var(--line);background:rgba(255,255,255,.66);color:var(--purple-dark)}
.case-section{margin-top:30px;animation:enter .8s .12s var(--ease) both}.case-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:15px;text-align:left}.case-kicker{color:var(--purple-dark);font-family:Consolas,"Microsoft YaHei",monospace;font-size:9px;font-weight:650;letter-spacing:.14em}.case-heading h2{margin:3px 0 0;font-size:23px;line-height:1.3;letter-spacing:-.025em}.case-heading p{margin:0;color:var(--muted);font-size:12px}.case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.case-card{position:relative;min-width:0;min-height:140px;display:grid;grid-template-columns:126px minmax(0,1fr);align-items:center;gap:15px;padding:14px 36px 14px 12px;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.66);text-align:left;transition:border-color .35s var(--hover),background .35s var(--hover),box-shadow .35s var(--hover)}.case-card:hover{border-color:rgba(88,72,210,.35);background:rgba(255,255,255,.94);box-shadow:0 18px 38px -32px rgba(58,43,138,.65)}.case-visual{display:block;overflow:hidden;border-radius:10px;background:#efedf8}.case-visual svg{display:block;width:100%;height:112px;stroke:none}.case-visual text{font-family:Consolas,monospace;font-size:6px;letter-spacing:1px;fill:#777286}.case-visual .board,.case-visual .paper{fill:#fff;stroke:#d7d2e5;stroke-width:1}.case-visual .fine{fill:none;stroke:#aaa4b9;stroke-width:2;stroke-linecap:round}.case-visual .accent-stroke{fill:none;stroke:#6558d9;stroke-width:3;stroke-linecap:round}.case-visual .accent-fill{fill:#6558d9;stroke:none}.case-visual .soft-fill{fill:#c5bdf5;stroke:none}.case-visual .slide-back{fill:#d9d4eb;stroke:none;transform:rotate(4deg);transform-origin:center}.case-visual .slide-front{fill:#fff;stroke:#d7d2e5;stroke-width:1}.case-visual .slide-line{fill:none;stroke:#fff;stroke-width:2}.case-visual .network{fill:none;stroke:#8c80df;stroke-width:1.5}.case-copy{min-width:0;display:flex;flex-direction:column}.case-meta{color:var(--purple-dark);font-size:10px;font-weight:650;letter-spacing:.05em}.case-copy strong{margin-top:7px;font-size:15px;line-height:1.5;letter-spacing:-.01em}.case-copy small{margin-top:7px;color:var(--muted);font-size:10px;line-height:1.55}.case-arrow{position:absolute;right:13px;bottom:14px;color:var(--purple)}.case-arrow svg{width:17px;height:17px;transition:transform .35s var(--hover)}.case-card:hover .case-arrow svg{transform:translateX(4px)}
.portal-footer{min-height:46px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px clamp(24px,4vw,64px);border-top:1px solid var(--line);color:var(--muted);font-size:10px}.portal-footer>span:first-child{display:flex;align-items:center;gap:7px}.portal-footer i{width:6px;height:6px;border-radius:50%;background:#49a276}
.portal-modal[hidden]{display:none}.portal-modal:not([hidden]){position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px}.modal-scrim{position:absolute;inset:0;background:rgba(28,25,46,.38);backdrop-filter:blur(9px)}body.modal-open{overflow:hidden}.login-dialog{position:relative;width:min(450px,100%);max-height:calc(100dvh - 40px);overflow-y:auto;padding:32px 34px 26px;border:1px solid rgba(255,255,255,.72);border-radius:22px;background:#fbfbfe;box-shadow:0 34px 100px -28px rgba(29,20,70,.48);animation:dialog-in .45s var(--ease) both}.modal-close{position:absolute;top:15px;right:15px;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--muted)}.modal-close:hover{background:var(--purple-soft);color:var(--purple-dark)}.modal-close svg{width:18px;height:18px}.login-brand{display:flex;align-items:center;gap:10px;color:var(--purple-dark);font-family:Bahnschrift,"Segoe UI",sans-serif;font-size:18px;font-weight:650}.login-brand img{width:42px;height:42px}.login-kicker{margin:24px 0 6px;color:var(--purple-dark);font-family:Consolas,monospace;font-size:9px;font-weight:650;letter-spacing:.16em}.login-dialog h2{margin:0;font-size:27px;line-height:1.35;letter-spacing:-.035em}.login-description{margin:10px 0 23px;color:var(--muted);font-size:13px;line-height:1.7}.login-description strong{color:var(--ink-2);font-weight:650}.login-dialog form>label{display:flex;justify-content:space-between;margin:15px 0 7px;color:var(--ink-2);font-size:13px;font-weight:650}.login-dialog form>label span{color:var(--muted);font-size:10px;font-weight:400}.login-dialog input{width:100%;height:47px;padding:10px 13px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;outline:0;font-size:14px;transition:border-color .2s,box-shadow .2s}.login-dialog input:focus{border-color:var(--purple);box-shadow:0 0 0 3px rgba(101,88,217,.1)}.password-field{position:relative}.password-field input{padding-right:46px}.password-field button{position:absolute;top:6px;right:6px;width:35px;height:35px;display:grid;place-items:center;border:0;background:transparent;color:var(--muted)}.password-field svg{width:18px;height:18px}.login-error{min-height:21px;margin:9px 0 0;color:#b53b52;font-size:12px;line-height:1.7}.login-submit{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:12px;margin-top:10px;border:0;border-radius:11px;background:var(--purple);color:#fff;font-size:14px;font-weight:680}.login-submit:hover{background:var(--purple-dark)}.login-submit:disabled{cursor:wait;opacity:.64}.login-submit svg{width:18px;height:18px}.login-help{display:flex;align-items:center;gap:8px;margin-top:19px;color:var(--muted);font-size:11px}.login-help a{color:var(--purple-dark);font-weight:650}.login-help a:last-child{margin-left:auto;color:var(--muted);font-weight:500}.login-privacy{margin:18px 0 0;padding-top:15px;border-top:1px solid var(--line);color:var(--muted);font-size:10px;line-height:1.7}.portal-toast{position:fixed;z-index:120;right:24px;bottom:24px;max-width:min(420px,calc(100vw - 32px));padding:12px 16px;border-radius:10px;background:var(--ink);color:#fff;box-shadow:0 14px 40px -20px rgba(0,0,0,.45);font-size:13px;opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .25s,transform .25s}.portal-toast.show{opacity:1;transform:none}
@keyframes enter{from{transform:translateY(12px)}to{transform:none}}@keyframes dialog-in{from{transform:translateY(12px) scale(.985)}to{transform:none}}@keyframes orbit-spin{to{transform:rotate(360deg)}}
@media(min-width:1600px){.portal-main{width:min(1260px,calc(100% - 64px))}.portal-hero h1{font-size:68px}.portal-composer{width:940px}.case-card{grid-template-columns:145px minmax(0,1fr);min-height:154px}.case-visual svg{height:122px}.case-copy strong{font-size:16px}.case-copy small{font-size:11px}}
@media(max-width:1100px){.portal-nav{gap:19px}.portal-nav a{font-size:13px}.motion-toggle span{display:none}.portal-brand small{font-size:9px}.case-card{grid-template-columns:104px minmax(0,1fr);gap:11px;padding-right:29px}.case-visual svg{height:100px}.case-copy strong{font-size:13px}.case-copy small{font-size:9px}.hero-orbit{left:calc(50% + 240px)}}
@media(max-height:820px) and (min-width:761px){.portal-header{height:70px}.portal-main{min-height:calc(100dvh - 110px);padding-top:16px;padding-bottom:18px}.portal-hero h1{font-size:46px}.portal-eyebrow{margin-bottom:10px}.hero-description{margin-top:11px;font-size:14px;line-height:1.7}.portal-composer{margin-top:19px}.portal-composer textarea{min-height:91px;padding-top:17px;font-size:16px}.portal-composer-bar{min-height:54px;padding-top:7px;padding-bottom:8px}.prompt-row{margin-top:8px}.case-section{margin-top:19px}.case-heading{margin-bottom:10px}.case-heading h2{font-size:20px}.case-card{min-height:124px}.case-visual svg{height:96px}.portal-footer{min-height:40px;padding-top:7px;padding-bottom:7px}}
@media(max-width:760px){.portal-header{height:68px;padding:0 17px;gap:10px}.portal-brand{gap:8px}.portal-brand img{width:37px;height:37px}.portal-brand strong{font-size:18px}.portal-brand small{display:none}.portal-nav{display:none}.portal-actions{gap:5px}.motion-toggle{width:32px;height:32px;padding:7px}.login-entry{min-height:37px;padding:7px 11px;font-size:12px}.login-entry svg{width:15px;height:15px}.portal-main{width:calc(100% - 30px);min-height:auto;padding:38px 0 30px}.portal-hero h1{font-size:clamp(37px,10vw,48px);line-height:1.22}.portal-eyebrow{margin-bottom:13px;font-size:9px;letter-spacing:.12em}.hero-description{margin-top:16px;font-size:14px;line-height:1.85}.desktop-break{display:none}.hero-orbit{top:-35px;left:62%;width:160px;height:160px}.portal-composer{margin-top:24px;border-radius:17px}.portal-composer textarea{min-height:130px;padding:18px 17px 9px;font-size:15px}.portal-composer-bar{min-height:60px;padding:8px 10px 10px 13px;gap:8px}.composer-hint,.composer-divider{display:none}.composer-left select{max-width:130px;font-size:12px}.composer-submit{min-height:42px;padding:9px 13px}.composer-submit span{display:none}.prompt-row{justify-content:flex-start;margin-top:13px}.prompt-row>span{width:100%}.prompt-row button{padding:6px 8px;font-size:11px}.case-section{margin-top:34px}.case-heading{align-items:flex-start;flex-direction:column;gap:5px}.case-heading h2{font-size:24px}.case-heading p{font-size:11px}.case-grid{grid-template-columns:1fr;gap:12px}.case-card{grid-template-columns:125px minmax(0,1fr);min-height:136px;gap:14px}.case-visual svg{height:106px}.case-copy strong{font-size:14px}.case-copy small{font-size:10px}.portal-footer{justify-content:center;padding:15px;font-size:9px}.portal-footer>span:nth-child(2),.portal-footer>span:last-child{display:none}.portal-modal:not([hidden]){padding:14px}.login-dialog{padding:27px 22px 22px;border-radius:18px}.login-dialog h2{font-size:24px}.login-help{flex-wrap:wrap}.login-privacy{font-size:9px}.portal-toast{right:16px;bottom:16px}}
@media(max-width:390px){.case-card{grid-template-columns:105px minmax(0,1fr);gap:10px}.case-copy strong{font-size:13px}.portal-brand strong{font-size:16px}.login-entry{gap:7px}.motion-toggle{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.hero-orbit{animation:none}}
