@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--blue:#183df5;--ink:#171c2b;--muted:#5e6474;--line:#dce1ed;--pale:#f3f5fa;--lime:#d9fa6c;--radius:18px}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:#fff;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.6}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ff9f1c;outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Manrope,Arial,sans-serif}h1{font-size:clamp(3.1rem,5.2vw,5.5rem);font-weight:600;letter-spacing:-.06em;line-height:1.1}h2{font-size:clamp(2.1rem,3.5vw,3.65rem);font-weight:500;letter-spacing:-.05em;line-height:1.14}h3{font-size:1.4rem;line-height:1.35;letter-spacing:-.025em}em{font-style:normal;color:var(--blue)}.wrap{max-width:1280px;margin:0 auto;padding-left:48px;padding-right:48px}.header{height:92px;max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 48px;border-bottom:1px solid var(--line);background:#ffffffef;position:sticky;top:0;z-index:20;backdrop-filter:blur(16px)}.identity{display:flex;align-items:center;gap:12px;line-height:1.15;font-size:14px}.identity strong{font-weight:700}.symbol{display:grid;place-content:center;width:42px;height:42px;background:var(--blue);color:white;border-radius:12px;font-family:Manrope,sans-serif;font-size:30px;letter-spacing:-3px;padding-right:5px}.header nav{display:flex;gap:30px;font-size:14px;font-weight:600}.header nav a:hover{color:var(--blue)}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;padding:15px 24px;border:1px solid transparent;border-radius:9px;font-weight:600;font-size:15px;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--blue);color:white}.button.outline{border-color:var(--line);background:white}.button.small{padding:10px 16px;font-size:14px;gap:15px}.button.lime{background:var(--lime);color:var(--ink)}.text-button{border:0;background:transparent;padding:8px 0;font-weight:600;font-size:14px;color:inherit}.text-button:hover{color:var(--blue)}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.13em;margin-bottom:24px}.hero{display:grid;grid-template-columns:1.12fr 1fr;gap:58px;padding-top:75px;padding-bottom:70px;align-items:center}.hero-copy .lead{margin:25px 0 28px;max-width:510px}.lead{font-size:18px;line-height:1.75;color:var(--muted)}.actions{display:flex;gap:23px;align-items:center;flex-wrap:wrap}.hero-foot{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-top:44px}.hero-foot span+span{border-left:1px solid var(--line);padding-left:16px}.day-board{background:var(--blue);border-radius:24px;color:white;padding:28px 30px;position:relative;box-shadow:0 24px 64px #183df522}.board-top{display:flex;justify-content:space-between;gap:14px;font-size:10px;letter-spacing:.08em;align-items:center}.board-date{color:#d9e0ff;font-size:11px;letter-spacing:0}.day-board h2{font-size:35px;margin:30px 0 24px;letter-spacing:-.04em}.role-switch{display:flex;background:#0c2ad0;padding:4px;border-radius:9px;gap:4px;margin-bottom:18px}.role-switch button{flex:1;font-size:12px;color:white;background:transparent;border:0;border-radius:6px;padding:8px 5px}.role-switch button[aria-pressed=true]{background:white;color:var(--blue)}.story-items{display:grid;gap:9px;min-height:249px}.story-item{background:white;color:var(--ink);border-radius:10px;padding:16px;display:grid;grid-template-columns:38px 1fr;gap:12px;align-items:center;animation:enter .35s ease both}.story-item:nth-child(2){animation-delay:.06s}.story-item:nth-child(3){animation-delay:.12s}.story-icon{display:grid;place-content:center;background:#eef1ff;width:36px;height:36px;border-radius:9px;color:var(--blue);font-size:18px}.story-item strong{display:block;font-size:14px}.story-item p{font-size:12px;color:var(--muted);line-height:1.45;margin-top:4px}.story-item .mini-tag{font-size:10px;background:#eff2f8;padding:2px 6px;border-radius:3px;margin-left:5px;font-weight:500}.board-bottom{display:flex;justify-content:space-between;font-size:11px;margin-top:22px;color:#d9e0ff}.numbers{display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-top:28px;padding-bottom:28px;gap:25px}.numbers>div{display:flex;align-items:center;gap:16px}.numbers strong{font-size:45px;font-family:Manrope,sans-serif;font-weight:500;letter-spacing:-.05em}.numbers span{font-size:13px;line-height:1.4;color:var(--muted)}.numbers p{font-size:14px;text-align:right;align-self:center}.intro{padding-top:95px;padding-bottom:95px}.section-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:end;margin-bottom:44px}.section-heading>p{color:var(--muted);max-width:480px;font-size:17px}.layers{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.layer{display:flex;flex-direction:column;align-items:flex-start;min-height:345px;padding:28px;border-radius:var(--radius);background:var(--pale);transition:transform .2s}.layer:hover{transform:translateY(-6px)}.layer-number{font-size:11px;letter-spacing:.12em;font-weight:700;margin-bottom:30px}.layer h3{font-size:25px;font-weight:500;margin-bottom:18px}.layer p{font-size:14px;line-height:1.7;max-width:260px;margin-bottom:22px;opacity:.8}.layer-link{font-size:14px;font-weight:600;margin-top:auto;margin-bottom:20px}.layer.blue{background:var(--blue);color:white}.layer.dark{background:var(--ink);color:white}.tag{display:inline-block;border:1px solid currentColor;border-radius:30px;padding:3px 9px;font-size:11px;line-height:1.4;font-weight:500;letter-spacing:0;opacity:.8;vertical-align:middle}.section-pad{padding-top:90px;padding-bottom:90px}.explore{background:var(--pale)}.explorer{display:grid;grid-template-columns:310px 1fr;border:1px solid var(--line);border-radius:18px;background:white;overflow:hidden}.module-nav{border-right:1px solid var(--line);padding:24px 16px;background:#fbfcff}.module-nav label{font-size:12px;font-weight:600;padding-left:8px}.search-wrap{position:relative;display:flex;align-items:center;gap:5px;border:1px solid var(--line);background:white;border-radius:8px;margin:9px 0 15px;padding:8px 10px}.search-wrap span{font-size:24px;color:var(--muted)}input{min-width:0}.search-wrap input{width:100%;border:0;outline:none;font-size:13px;background:transparent;color:var(--ink)}#module-list{max-height:625px;overflow:auto;scrollbar-width:thin}.module-button{display:flex;align-items:center;gap:11px;text-align:left;background:transparent;border:0;border-radius:7px;width:100%;padding:12px 10px;line-height:1.4;color:var(--muted);font-size:13px}.module-button small{font-size:10px;opacity:.7}.module-button[aria-pressed=true]{background:#e9edff;color:var(--blue);font-weight:700}.module-button:hover{background:#f0f3ff}.module-detail{padding:36px;min-width:0;min-height:800px}.module-detail h3{font-size:29px;font-weight:500;max-width:550px;margin:16px 0}.module-detail .summary{font-size:16px;color:var(--muted);margin-bottom:20px}.module-meta{display:flex;gap:15px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted);margin-bottom:18px}.module-function-list{margin-top:25px}.module-function-list details{border-top:1px solid var(--line);padding:12px 0}.module-function-list details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;font-size:14px;font-weight:500;list-style:none}summary::-webkit-details-marker{display:none}.module-function-list summary{display:flex;justify-content:space-between;gap:10px}.module-function-list summary:after{content:'+';color:var(--blue)}.module-function-list details[open] summary:after{content:'−'}.module-function-list details p{font-size:14px;color:var(--muted);padding-top:10px;line-height:1.75}.reference{margin-top:28px}.reference-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.reference-top strong{font-size:13px}.gallery-buttons{display:flex;gap:8px;align-items:center;font-size:12px}.gallery-buttons button{border:1px solid var(--line);border-radius:6px;background:white;width:31px;height:31px}.gallery-buttons button:disabled{opacity:.35;cursor:default}.reference-image{display:block;cursor:zoom-in;padding:12px;background:var(--pale);border:1px solid var(--line);width:100%;border-radius:10px}.reference-image img{width:100%;height:230px;object-fit:contain;display:block}.meta{color:var(--muted);font-size:12px;line-height:1.7;margin-top:12px}.module-map{background:var(--pale);border-radius:12px;padding:24px;display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:26px}.module-map span{background:white;border:1px solid var(--line);padding:9px 12px;border-radius:8px;font-size:13px}.studio-workspace{display:grid;grid-template-columns:235px 1fr;border:1px solid var(--line);border-radius:18px;overflow:hidden}.studio-tools{background:#f7f8fc;padding:18px}.tool-button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:0;border-radius:9px;background:transparent;padding:15px 12px;color:var(--muted);font-size:14px}.tool-button span{font-size:12px;font-weight:700;color:var(--blue)}.tool-button[aria-pressed=true]{background:white;color:var(--ink);box-shadow:0 4px 15px #151b3210;font-weight:600}.studio-desk{min-width:0;padding:28px}.studio-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:24px;border-bottom:1px solid var(--line)}label{font-size:13px;font-weight:600}select{display:block;margin-top:7px;border:1px solid var(--line);border-radius:7px;padding:10px 30px 10px 12px;background:white;color:var(--ink);font-size:14px;max-width:100%}.sample-label{font-size:11px;color:var(--muted);text-align:right}.output-title{display:flex;justify-content:space-between;align-items:start;gap:18px;margin:26px 0 20px}.output-title h3{font-size:26px;font-weight:500;margin:6px 0}.output-title small{color:var(--muted);font-size:12px}.sample-paper{background:#fafbfe;border:1px solid var(--line);border-radius:12px;padding:24px;min-height:340px}.sample-paper h4{font-size:14px;margin:0 0 8px;color:var(--blue)}.sample-paper p,.sample-paper li{font-size:14px;line-height:1.7}.sample-paper p+p{margin-top:12px}.sample-paper ul,.sample-paper ol{padding-left:20px;margin:8px 0 18px}.sample-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.sample-block{border-bottom:1px solid var(--line);padding-bottom:15px;margin-bottom:15px}.sample-block:last-child{border:0;margin:0;padding:0}.sample-rubric{width:100%;border-collapse:collapse;font-size:12px}.sample-rubric th,.sample-rubric td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.teacher-control{display:flex;gap:12px;align-items:start;margin-top:24px}.teacher-control>span{background:var(--lime);padding:2px 8px;border-radius:50%;font-size:14px}.teacher-control strong{font-size:13px}.teacher-control p{font-size:12px;color:var(--muted);margin-top:4px;max-width:440px}.teacher-control button{margin-left:auto;white-space:nowrap}.flow-section{background:var(--ink);color:white}.flow-section em{color:var(--lime)}.flow-section .section-heading>p{color:#b9c0d3}.flow-console{border:1px solid #3b4152;background:#202638;border-radius:18px;padding:28px}.flow-controls{display:flex;gap:22px;align-items:end;flex-wrap:wrap}.flow-controls>label:first-child{flex:1;min-width:220px}.flow-controls select{width:100%;background:#2d3448;color:white;border-color:#4d5570}.check{font-size:13px;display:flex;align-items:center;gap:8px;min-height:48px;font-weight:400}.check input{accent-color:var(--lime);width:18px;height:18px}.flow-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:35px 0 24px}.flow-step{text-align:left;color:#cad0e0;border:1px solid #424b62;background:#283046;border-radius:10px;padding:16px 12px;position:relative;min-height:108px;font-size:13px}.flow-step span{display:block;font-family:Manrope,sans-serif;font-size:22px;color:#a1adc7;margin-bottom:7px}.flow-step.active{border-color:var(--lime);background:#d9fa6c12;color:white}.flow-step.active span,.flow-step.done span{color:var(--lime)}.flow-step.done{border-color:#748652}.flow-step.exception{border-color:#ffbb64}.flow-detail{padding:24px;background:#171d2d;border-radius:10px;min-height:180px}.flow-detail h3{font-size:19px;margin:4px 0 10px;font-weight:500}.flow-detail p{font-size:15px;color:#c0c8dc;max-width:900px}.flow-detail small{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--lime)}.flow-section .meta{color:#afb8ce}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:45px}.principles span{font-size:12px;color:var(--lime)}.principles h3{font-size:18px;margin:12px 0 10px}.principles p{font-size:14px;color:#afb8ce}.guide-section{display:grid;grid-template-columns:1fr 1.1fr;gap:90px;align-items:center}.guide-section .lead{margin-top:22px}.conversation{border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 18px 55px #171c2b08}.chat-head{display:flex;gap:12px;align-items:center;padding:19px 22px;border-bottom:1px solid var(--line)}.guide-avatar{background:var(--blue);color:white;padding:3px 12px;border-radius:10px;font-size:25px;font-weight:700}.chat-head strong{display:block;font-size:14px}.chat-head span:not(.guide-avatar){font-size:11px;color:var(--muted)}.chat-head button{margin-left:auto}.chat-log{height:305px;overflow:auto;padding:24px;scrollbar-width:thin;display:flex;flex-direction:column;gap:16px}.message{border-radius:12px;background:var(--pale);padding:14px 16px;font-size:14px;line-height:1.65;max-width:95%;align-self:flex-start;white-space:pre-line;flex-shrink:0}.message.user{background:var(--blue);color:white;align-self:flex-end}.message a{display:block;margin-top:10px;color:var(--blue);font-size:13px;font-weight:600}.suggestions{padding:0 22px 17px;display:flex;flex-wrap:wrap;gap:7px}.suggestions button{background:white;border:1px solid var(--line);border-radius:20px;font-size:11px;padding:6px 9px}.suggestions button:hover{border-color:var(--blue);color:var(--blue)}#chat-form{display:flex;padding:16px;border-top:1px solid var(--line);gap:9px}#chat-input{border:0;background:var(--pale);padding:12px;border-radius:8px;flex:1;font-size:13px}#chat-form button{border:0;background:var(--blue);color:white;font-size:22px;width:42px;border-radius:8px}.closing{background:#edf1ff;overflow:hidden}.closing-inner{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center;padding-top:70px;padding-bottom:60px}.closing h2{font-size:clamp(2.5rem,4vw,4rem)}.closing p:not(.eyebrow):not(.meta){color:var(--muted);margin:24px 0}.brochure-preview{perspective:1000px;display:flex;justify-content:center}.paper{width:270px;aspect-ratio:.707;background:var(--blue);color:white;padding:30px;box-shadow:15px 20px 0 #162dd313,0 20px 45px #192b8c24;transform:rotate(9deg)}.paper>span{font-size:10px;letter-spacing:.15em}.paper h3{font-size:39px;line-height:1.05;letter-spacing:-.045em;margin:45px 0 28px}.paper i{color:var(--lime);font-style:normal}.paper-line{width:100%;height:1px;background:#6781ff}.paper p{font-size:10px;color:white!important;margin:18px 0!important}.paper b{font-size:8px;letter-spacing:.12em;color:#b5c3ff}.footer-top{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:40px 0}.footer-top p{font-size:14px;color:var(--muted)}.footer-top>a:last-child{font-size:14px;color:var(--blue)}footer details{border-top:1px solid var(--line);padding:20px 0}footer summary{font-size:12px;color:var(--muted)}footer details p{font-size:12px;line-height:1.8;color:var(--muted);max-width:950px;margin-top:15px}footer details a{text-decoration:underline}.footer-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:11px;color:var(--muted);padding:22px 0 35px}.floating-guide{position:fixed;bottom:24px;right:24px;z-index:15;background:var(--ink);color:white;border:1px solid #ffffff50;border-radius:30px;padding:13px 20px;font-size:14px;box-shadow:0 4px 15px #0002}.floating-guide span{margin-left:18px}dialog{max-width:min(1200px,94vw);max-height:92vh;width:fit-content;border:0;border-radius:14px;padding:20px;box-shadow:0 25px 100px #0005}dialog::backdrop{background:#10182abf;backdrop-filter:blur(5px)}.dialog-header{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:15px}.dialog-header p{font-size:14px}dialog img{display:block;max-width:100%;max-height:68vh;object-fit:contain}dialog>a{font-size:12px;display:inline-block;color:var(--blue);margin-top:15px}.skip{position:fixed;top:-100px;left:20px;background:white;padding:15px;z-index:100}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:12px 22px;background:var(--ink);color:white;font-size:14px;border-radius:10px;z-index:50;opacity:0;pointer-events:none}#toast.visible{opacity:1}@keyframes enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1500px){.hero{padding-top:100px;padding-bottom:100px}}
@media(max-width:1050px){.wrap{padding-left:28px;padding-right:28px}.header{padding:0 28px}.header nav{gap:18px}.hero{gap:30px}.day-board{padding:24px}.section-heading{gap:40px}.module-detail{padding:25px}.explorer{grid-template-columns:270px 1fr}.guide-section{gap:40px}.studio-workspace{grid-template-columns:205px 1fr}.flow-controls{gap:14px}.numbers{gap:20px}.numbers strong{font-size:38px}.numbers>div{gap:10px}}
@media(max-width:760px){html{scroll-padding-top:80px}.header{height:76px;padding:0 20px}.header nav{display:none}.header .button{font-size:12px;padding:9px 12px;gap:9px}.wrap{padding-left:22px;padding-right:22px}.hero{grid-template-columns:1fr;padding-top:48px;padding-bottom:40px;gap:35px}.hero h1{font-size:clamp(3rem,10vw,4.6rem)}.hero-foot{margin-top:28px}.eyebrow{font-size:10px;letter-spacing:.1em;margin-bottom:18px}.day-board h2{font-size:32px}.hero .lead{font-size:16px}.numbers{grid-template-columns:repeat(3,1fr);padding-top:23px;padding-bottom:23px;gap:16px}.numbers>div{display:block}.numbers strong{font-size:36px;display:block}.numbers span{font-size:11px}.numbers p{grid-column:1/-1;text-align:left;font-size:13px;border-top:1px solid var(--line);padding-top:16px}.numbers p br{display:none}.intro,.section-pad{padding-top:58px;padding-bottom:58px}.section-heading{grid-template-columns:1fr;gap:22px;margin-bottom:30px}.section-heading>p{font-size:16px}.layers{grid-template-columns:1fr}.layer{min-height:270px;padding:26px}.layer h3 br{display:none}.layer-number{margin-bottom:18px}.layer p{max-width:none}.layer-link{margin-bottom:15px}.explorer{grid-template-columns:1fr}.module-nav{border-right:0;border-bottom:1px solid var(--line);padding:16px}#module-list{max-height:185px;display:grid;grid-template-columns:1fr 1fr;gap:2px}.module-button{font-size:12px;padding:10px}.module-button small{display:none}.module-detail{padding:24px;min-height:0}.module-detail h3{font-size:26px}.reference-image img{height:190px}.studio-workspace{grid-template-columns:1fr}.studio-tools{display:grid;grid-template-columns:repeat(3,1fr);padding:10px;gap:4px}.tool-button{font-size:11px;padding:10px 5px;gap:4px;display:block;text-align:center}.tool-button span{display:block;font-size:10px}.studio-desk{padding:20px}.studio-controls{display:block}.sample-label{display:block;text-align:left;margin-top:12px}.sample-label br{display:none}.sample-grid{grid-template-columns:1fr}.sample-paper{padding:18px}.teacher-control{flex-wrap:wrap}.teacher-control>div{flex:1}.teacher-control button{margin-left:30px}.flow-console{padding:18px}.flow-controls{display:grid;grid-template-columns:1fr}.flow-controls .button{width:100%}.flow-steps{gap:5px;margin:25px 0 18px}.flow-step{font-size:10px;padding:10px 5px;min-height:95px;line-height:1.4;overflow-wrap:anywhere}.flow-step span{font-size:18px}.flow-detail{padding:18px;min-height:240px}.principles{grid-template-columns:1fr;gap:25px}.principles h3{margin:4px 0}.guide-section{grid-template-columns:1fr;gap:28px}.chat-log{height:310px;padding:18px}.chat-head{padding:17px}.chat-form{padding:12px}.closing-inner{grid-template-columns:1fr;gap:40px;padding-top:55px;padding-bottom:55px}.closing p br{display:none}.brochure-preview{display:none}.closing .button{gap:15px;font-size:14px}.footer-top{flex-wrap:wrap;padding:30px 0;gap:20px}.footer-top p{width:100%;order:3}.footer-bottom{flex-direction:column;gap:8px;padding-bottom:85px}.floating-guide{bottom:16px;right:16px;font-size:12px;padding:11px 16px}h2{font-size:2.5rem}.dialog-header p{font-size:12px}.sample-rubric{font-size:11px}.sample-rubric th,.sample-rubric td{padding:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

/* Keep repeated navigation and interactive labels comfortably readable. */
.module-button,.module-nav label,.search-wrap input,.tool-button,.role-switch button,.suggestions button,#chat-input{font-size:14px}.sample-label{font-size:12px}.story-item p{font-size:13px}@media(max-width:760px){.module-button,.tool-button,.role-switch button{font-size:13px}.suggestions button{font-size:12px}}
/* Full-size screen gallery */
.explore>.wrap{max-width:1440px}.explorer{grid-template-columns:260px minmax(0,1fr)}.module-nav{position:relative}.module-detail{padding:32px;min-height:0}.module-function-list h4{font-size:14px;margin:30px 0 15px}.reference{margin-top:24px}.reference-image{position:relative;padding:12px;overflow:hidden;background:#fff;min-height:250px}.reference-image img{height:auto;max-height:none;width:100%;object-fit:contain}.expand-hint{position:absolute;right:18px;bottom:18px;background:#171c2bf2;color:#fff;border-radius:24px;padding:9px 15px;font-size:13px;box-shadow:0 3px 15px #0003;transition:transform .2s}.reference-image:hover .expand-hint{transform:translateY(-3px)}.reference-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center}.reference-bottom .meta{margin:0}.reference-bottom button{white-space:nowrap;color:var(--blue)}.gallery-buttons button{height:38px;width:38px;font-size:17px}.image-toolbar{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:0 0 16px;flex-wrap:wrap}.image-toolbar>div{display:flex;gap:7px;align-items:center}.image-toolbar button,.image-toolbar a{border:1px solid var(--line);border-radius:7px;padding:8px 12px;background:white;font-size:13px}.image-toolbar button[aria-pressed=true]{background:var(--blue);color:white;border-color:var(--blue)}.image-toolbar button:disabled{opacity:.35;cursor:default}#zoom-label{min-width:40px;text-align:center;font-size:12px;color:var(--muted)}dialog#image-dialog{width:96vw;max-width:1800px;height:94vh;max-height:94vh;padding:22px;overflow:hidden}#image-dialog[open]{display:flex;flex-direction:column}#image-caption{font-size:16px;font-weight:600}.image-viewport{flex:1;min-height:0;overflow:auto;background:#eef1f6;border:1px solid var(--line);border-radius:9px;overscroll-behavior:contain;touch-action:pan-x pan-y}#large-image{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;cursor:zoom-in;margin:0 auto}#large-image.zoomed{height:auto;max-width:none;max-height:none;object-fit:initial;margin:0;cursor:zoom-out}#image-dialog>.meta{flex-shrink:0;margin-top:10px}.dialog-header{flex-shrink:0}.dialog-header .meta{font-size:12px}
/* Follow a sample record through a visible validation process. */
.flow-progress{height:3px;background:#424b62;margin:-10px 0 30px;border-radius:3px;overflow:hidden}.flow-progress>span{display:block;height:100%;background:var(--lime);transition:width .75s ease;box-shadow:0 0 14px var(--lime)}.flow-stage{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1.1fr) 22px minmax(0,1fr);gap:9px;margin-bottom:24px;align-items:stretch}.flow-record,.flow-validation,.flow-outcome{background:#171d2d;border:1px solid #424b62;border-radius:12px;padding:20px;min-width:0;position:relative;overflow:hidden}.stage-label{font-size:10px;font-weight:700;letter-spacing:.1em;color:#acb9d5;display:flex;justify-content:space-between;gap:12px}.stage-label>span{letter-spacing:0;font-weight:400;overflow-wrap:anywhere}.flow-stage h4{font-size:17px;line-height:1.45;font-weight:500;margin:19px 0}.flow-record dl{margin:0 0 20px}.flow-record dl>div{display:flex;gap:15px;justify-content:space-between;border-top:1px solid #353d52;padding:10px 0;font-size:12px}.flow-record dt{color:#a5b1ca}.flow-record dd{margin:0;text-align:right;max-width:65%;overflow-wrap:anywhere;color:#fff}.record-status{font-size:12px;display:inline-flex;background:#d9fa6c16;color:var(--lime);padding:5px 10px;border-radius:5px}.record-status.amber{background:#ffbb6420;color:#ffcc87}.flow-validation ul{list-style:none;margin:20px 0;padding:0}.rule-row{display:flex;gap:10px;align-items:flex-start;padding:11px 0;border-top:1px solid #353d52}.rule-mark{display:inline-grid;place-content:center;width:23px;height:23px;flex-shrink:0;border-radius:50%;background:#323b51;color:#9ca9c4;font-size:13px}.rule-row strong{display:block;font-size:12px;line-height:1.5;font-weight:500}.rule-row small{font-size:11px;color:#9ca9c4;display:block;margin-top:3px}.rule-row.pass .rule-mark{background:#d9fa6c;color:#171c2b;animation:check-pop .4s ease both;animation-delay:var(--row-delay)}.rule-row.pass small{color:var(--lime)}.rule-row.warn .rule-mark{background:#ffbb64;color:#171c2b;animation:check-pop .4s ease both}.rule-row.warn small{color:#ffcc87}.rule-row.checking .rule-mark{animation:spin .85s linear infinite;animation-delay:var(--row-delay);color:var(--lime)}.rule-row.checking{animation:check-glow 1.4s ease both;animation-delay:var(--row-delay)}.flow-validation>p,.flow-outcome>p{font-size:12px;color:#b5c1d9;line-height:1.7}.flow-transfer{display:flex;align-items:center;justify-content:center;position:relative;color:#65728f;font-size:26px}.flow-transfer i{position:absolute;width:7px;height:7px;border-radius:50%;background:var(--lime);opacity:0;left:-8px;top:48%}.is-working .flow-transfer.transferred i{animation:transfer 1.3s ease-in-out infinite}.has-exception .flow-transfer:last-of-type i{background:#ffbb64}.outcome-icon{display:grid;place-content:center;width:45px;height:45px;border-radius:12px;background:#d9fa6c15;color:var(--lime);font-size:25px;margin-top:23px}.outcome-icon.amber{color:#ffcc87;background:#ffbb6415}.audit-line{font-size:11px;border-top:1px solid #353d52;padding-top:12px;margin-top:20px;color:#8492af}.audit-recorded{color:var(--lime);animation:enter .5s ease both}.record-arriving{animation:record-slide .7s ease both}.outcome-arriving{animation:outcome-glow .8s ease both}.has-exception .outcome-arriving{border-color:#ffbb64}.step-spinner{position:absolute;top:15px;right:12px;width:13px;height:13px;border:2px solid #d9fa6c35;border-top-color:var(--lime);border-radius:50%;animation:spin .75s linear infinite}.flow-events{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.flow-events span{font-size:11px;padding:4px 9px;border:1px solid #3e4b64;border-radius:5px;color:#b7c6df;animation:enter .3s ease both}.flow-detail{min-height:200px}.recheck-rules{margin-top:5px;border:1px solid #68774e;background:transparent;color:var(--lime);border-radius:6px;padding:7px 10px;font-size:12px}.sample-paper{animation:enter .45s ease both}.module-map span{animation:enter .4s ease both}.module-map span:nth-of-type(2){animation-delay:.15s}.module-map span:nth-of-type(3){animation-delay:.3s}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes check-pop{0%{transform:scale(.5);opacity:.3}70%{transform:scale(1.18)}100%{transform:scale(1);opacity:1}}@keyframes check-glow{0%,100%{background:transparent}50%{background:#d9fa6c12}}@keyframes transfer{0%{left:-8px;opacity:0}25%{opacity:1}80%{opacity:1}100%{left:22px;opacity:0}}@keyframes record-slide{from{transform:translateX(-15px);opacity:.2}to{transform:translateX(0);opacity:1}}@keyframes outcome-glow{0%{transform:translateY(8px);border-color:#424b62}70%{border-color:var(--lime)}100%{transform:translateY(0);border-color:#748652}}
@media(max-width:1050px){.explorer{grid-template-columns:230px minmax(0,1fr)}.module-detail{padding:24px}.flow-stage{grid-template-columns:1fr 18px 1fr}.flow-outcome{grid-column:1/-1;display:grid;grid-template-columns:50px 1fr;column-gap:18px}.flow-outcome .stage-label{grid-column:1/-1}.flow-outcome .outcome-icon{grid-row:2/4;margin-top:15px}.flow-outcome h4{margin-bottom:8px}.flow-outcome .audit-line{grid-column:1/-1}.flow-transfer:nth-of-type(4){display:none}}
@media(max-width:760px){.explorer{grid-template-columns:1fr}.module-detail{padding:20px}.reference-image{min-height:0;padding:5px}.reference-image img{height:auto;max-height:none}.expand-hint{right:9px;bottom:9px;font-size:11px;padding:6px 10px}.reference-bottom{display:block}.reference-bottom .meta{margin-top:10px}.reference-bottom button{padding:5px 0}.flow-stage{display:flex;flex-direction:column;gap:12px}.flow-transfer{height:20px;transform:rotate(90deg)}.flow-transfer:nth-of-type(4){display:flex}.flow-outcome{display:block}.flow-outcome .outcome-icon{margin-top:18px}.flow-record,.flow-validation,.flow-outcome{padding:18px}.flow-stage h4{font-size:18px}.rule-row strong,.flow-outcome>p{font-size:14px}.stage-label{font-size:11px}.flow-record dl>div{font-size:13px}.flow-step{font-size:11px}.image-toolbar{gap:9px;padding-bottom:12px}.image-toolbar button,.image-toolbar a{font-size:12px;padding:8px}.image-toolbar>div{flex-wrap:wrap}.image-toolbar>a{display:none}dialog#image-dialog{width:98vw;height:96vh;max-height:96vh;padding:12px}#image-caption{font-size:13px}.dialog-header{gap:10px;margin-bottom:10px}#image-dialog>.meta{font-size:11px}.step-spinner{right:5px;top:11px;width:10px;height:10px}}
@media(prefers-reduced-motion:reduce){.flow-progress>span{transition:none}*,*:before,*:after{animation:none!important;transition:none!important}}

/* WEFT brand: a compact woven mark and a clear, scalable wordmark. */
.identity{flex-shrink:0}.weft-logo{display:block;width:150px;height:auto}.weft-avatar{padding:0;background:none;border-radius:10px;object-fit:contain;flex-shrink:0}.paper-logo{display:block;width:128px;height:auto}.paper h3{margin-top:32px}.board-bottom{flex-wrap:wrap;gap:8px}.layer-number{font-size:13px;letter-spacing:.08em}.header nav{gap:24px}
@media(max-width:600px){.weft-logo{width:119px}.header{gap:12px}.header>.button{font-size:12px;padding:10px;gap:8px}.paper-logo{width:128px}}
