/* Passport texture and content styles.
   Viewport sizing is defined in viewport.css. */
:root{--ink:#24384b;--muted:#66727a;--paper:#f5f5ef;--line:#cbd2cf;--blue:#355c80;--red:#a34b47;--purple:#72618b;--green:#527467;--serif:'Songti SC','SimSun',serif;--sans:'Microsoft YaHei','PingFang SC',sans-serif;--hand:'KaiTi','STKaiti',cursive;--gold:#cfaa62;--leather:#392719}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:#e8e9e5;font:15px/1.8 var(--sans);min-height:100dvh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid #477fa3;outline-offset:5px}button:disabled{opacity:.3;cursor:default}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:500}h1{font-size:52px;letter-spacing:8px;line-height:1.4}h2{font-size:34px;line-height:1.5;letter-spacing:2px}h3{font-size:17px;font-weight:600}.site-header{height:58px;margin:0 26px;border-bottom:1px solid #24384b20;display:flex;align-items:center;justify-content:space-between}.wordmark{display:flex;align-items:center;gap:11px;font-weight:600;text-decoration:none;letter-spacing:2px}.header-sub{font-size:11px;color:var(--muted);font-weight:400;margin-left:8px}.mini-book{width:17px;height:23px;border:1px solid #785b32;border-radius:1px 3px 3px 1px;background:var(--leather)}.resume-link{font-size:12px;text-decoration:none}.resume-link span{margin-left:12px}.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:12px auto;width:calc(100% - 48px);max-width:1480px;min-height:38px}.chapter-nav{display:flex;gap:4px}.chapter-nav button{font-size:12px;background:none;padding:6px 12px;border-bottom:1px solid transparent}.chapter-nav button[aria-current=true]{color:var(--chapter);border-color:var(--chapter)}.layout-switch{display:flex;border:1px solid #b7c0be;padding:3px;flex-shrink:0}.layout-switch button{font-size:11px;background:none;padding:4px 12px}.layout-switch button[aria-pressed=true]{background:#334c59;color:#f6f6ef}.passport-stage{display:grid;place-items:center;min-height:calc(100dvh - 152px);padding:24px}.passport-shell{position:relative;width:276px;aspect-ratio:88/125;transform-origin:top left;isolation:isolate;box-shadow:0 25px 40px -16px #252c3060,0 3px 7px #282c3330;border-radius:5px 10px 10px 5px;background:var(--leather)}.passport-cover{position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:center;flex-direction:column;overflow:hidden;border-radius:inherit;background:linear-gradient(90deg,#21170f80,transparent 8%,#a7805010 58%,#1a160f20),repeating-linear-gradient(42deg,transparent 0px,#e2ba6a08 1px,transparent 2px,transparent 4px),repeating-linear-gradient(-42deg,transparent 0px,#e2ba6a07 1px,transparent 2px,transparent 5px),var(--leather);color:var(--gold);padding:29px 24px 20px;box-shadow:inset 4px 0 8px #150f0b88,inset 0 0 0 1px #8f6a344d;text-shadow:0 1px #201307;transition:opacity .28s}.cover-border{position:absolute;inset:12px;border:1px solid #c7a36030;border-radius:2px 6px 6px 2px;pointer-events:none}.cover-label{font-family:var(--serif);font-size:30px;letter-spacing:7px;line-height:1.5;margin-left:7px}.cover-english{font:10px/1.8 Consolas,monospace;letter-spacing:4px;margin-top:3px}.cover-emblem{display:grid;place-items:center;font:64px/1 Georgia,serif;width:85px;height:85px;border:1px solid #cbaa6580;border-radius:50%;outline:1px solid #cbaa654f;outline-offset:-7px;margin:30px 0 24px}.cover-name{font-family:var(--serif);font-size:29px;letter-spacing:5px}.cover-subtitle{font-family:var(--hand);font-size:14px;margin-top:6px;opacity:.84}.cover-action{font-size:10px;letter-spacing:2px;margin-top:auto;border-top:1px solid #cbaa6540;padding-top:12px;width:140px}.cover-action span{margin-left:13px}.map-sheet{display:none}.is-open .passport-stage{display:block;min-height:0;padding:0 24px}.passport-shell[data-state=open]{width:100%;max-width:1480px;margin:0 auto;aspect-ratio:297/210;border-radius:1px;background:var(--paper);box-shadow:0 14px 32px -18px #3a474a60,0 1px 4px #45545235}.passport-shell[data-state=open] .passport-cover{opacity:0;pointer-events:none}.passport-shell[data-state=open] .map-sheet{display:flex;flex-direction:column;min-height:100%;aspect-ratio:297/210}.map-sheet{position:relative;overflow:hidden;background-color:var(--paper);background-image:repeating-radial-gradient(ellipse at 22% 77%,transparent 0px,transparent 12px,#587d8120 12.5px,transparent 13px,transparent 22px);border:1px solid #cbd3c7;padding:21px 32px 17px}.map-sheet:before{content:'';position:absolute;inset:0;background:linear-gradient(110deg,#f5f5efee,#f5f5efc9 70%,#f5f5efad);pointer-events:none}.map-header,.map-footer{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#617078;font-size:11px;letter-spacing:1px}.map-header{padding-bottom:13px;border-bottom:1px solid #aebbba77}.map-header button{background:none;font-size:11px;padding:5px 0 5px 12px}.map-header button span{margin-left:8px}.map-content{position:relative;z-index:1;flex:1;display:grid;grid-template-columns:1fr 1fr;gap:54px;padding:28px 0 34px;min-height:0}.page{position:relative;min-width:0;display:flex;flex-direction:column;align-items:flex-start;z-index:1}.page>*{max-width:100%}.map-footer{border-top:1px solid #aebbba77;padding-top:12px;font-size:10px;margin-top:auto}.chapter-controls{display:flex;gap:24px;align-items:center}.chapter-controls button{padding:4px 0;background:none;font-size:11px}.chapter-controls #counter{font:11px Consolas,monospace}.map-folds{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent calc(33.333% - 2px),#5b787415 calc(33.333% - 1px),#ffffff8a 33.333%,transparent calc(33.333% + 2px),transparent calc(66.666% - 2px),#5b787415 calc(66.666% - 1px),#ffffff8a 66.666%,transparent calc(66.666% + 2px)),linear-gradient(transparent calc(50% - 2px),#65797112 calc(50% - 1px),#ffffff7a 50%,transparent calc(50% + 2px));z-index:0}.interaction-hint{text-align:center;color:#6d797c;font-size:11px;margin:13px 20px 9px}.site-footer{display:flex;justify-content:space-between;margin:0 26px;padding:9px 0 15px;font-size:10px;color:#758089;letter-spacing:1px}.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}.no-js{text-align:center}
/* Existing content: fonts retained, normal flow replaces fixed-height book pages. */
.overline{font-size:12px;letter-spacing:3px;color:var(--muted)}.intro-heading{margin-top:3px}.intro-heading .overline{margin-bottom:8px}.intro-subtitle{font:27px/1.6 var(--hand);color:#526a7c;margin-top:8px;transform:rotate(-2deg)}.identity{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:22px 30px;margin:28px 0 0}.identity dt{font-size:12px;color:var(--muted);letter-spacing:1px}.identity dd{font-size:17px;margin:5px 0 0}.identity .wide{grid-column:1/-1}.identity .wide dd{font-size:21px;letter-spacing:3px}.intro-summary{font-size:16px;line-height:2.1;margin-top:27px}.stamp{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--stamp,var(--red));border:2px solid currentColor;outline:1px solid currentColor;outline-offset:-7px;transform:rotate(-8deg);line-height:1.7;font-family:var(--serif);opacity:.86;letter-spacing:2px;text-align:center}.stamp strong{font-size:22px;font-weight:500}.stamp small{font:10px/1.9 Consolas,monospace;letter-spacing:1px}.stamp-round{width:115px;height:115px;border-radius:50%}.intro-stamp{position:absolute;right:8px;bottom:63px}.machine-line{font:12px/1.8 Consolas,monospace;letter-spacing:2px;color:#7d888d;margin-top:auto;padding-top:40px}.index-heading{margin-top:4px}.index-heading h2{font-size:32px}.index-heading p{font-size:12px;color:var(--muted);margin-top:8px}.index-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px 22px;width:100%;margin-top:30px}.visa-link{background:none;padding:0;text-align:center;min-width:0;display:flex;flex-direction:column;align-items:center;gap:12px}.visa-seal{width:clamp(116px,10.5vw,162px);aspect-ratio:1;display:flex;align-items:center;justify-content:center;flex-direction:column;color:var(--chapter);border:2px solid currentColor;border-radius:50%;position:relative;transform:rotate(var(--tilt));transition:transform .2s,background .2s}.visa-seal:after{position:absolute;content:'';inset:8px;border:1px solid currentColor;border-radius:50%;opacity:.65}.visa-link:hover .visa-seal{transform:rotate(0deg) scale(1.04);background:#ffffff77}.visa-city{font:24px/1.5 var(--serif);letter-spacing:2px}.visa-english{font:10px/1.8 Consolas,monospace;letter-spacing:1px;margin-top:4px}.visa-date{font:11px/1.8 Consolas,monospace;letter-spacing:1px}.visa-description{font-size:11px;color:#68757c;line-height:1.8;max-width:170px}.index-note{font:25px/1.7 var(--hand);color:#53716b;transform:rotate(-2deg);margin:32px 0 0 12px}.pencil-underline{border-bottom:1px solid #64807688;padding-bottom:3px}.chapter-heading{margin-top:4px}.chapter-heading h2{font-size:46px;letter-spacing:7px;line-height:1.4}.chapter-heading .date{display:block;font:13px/1.8 Consolas,monospace;color:var(--muted);letter-spacing:1px;margin-top:5px}.chapter-tag{display:inline-block;border:1px solid var(--chapter);color:var(--chapter);font-size:12px;padding:2px 10px;transform:rotate(-2deg);margin-top:15px}.chapter-stamp{position:absolute;right:4px;top:24px;width:112px;height:80px;--stamp:var(--chapter);transform:rotate(9deg)}.place-art{width:min(100%,480px);aspect-ratio:1.15;background-image:url('assets/places.png');background-size:200% 200%;background-repeat:no-repeat;mix-blend-mode:multiply;margin:22px auto 0}.art-dalian{background-position:0 0}.art-kyoto{background-position:100% 0}.art-la{background-position:0 100%}.art-kameoka{background-position:100% 100%}.place-caption{font:22px/1.8 var(--hand);color:#5f6e78;margin-top:14px}.chapter-institution{font-size:20px;margin-top:25px}.chapter-degree{font-size:14px;color:var(--muted);margin-top:5px}.detail-heading{font-size:33px;line-height:1.5;margin-top:4px}.detail-intro{font-size:16px;line-height:2;color:#52626b;margin-top:16px}.metric-row{display:flex;gap:38px;margin:26px 0 10px;padding:16px 0;width:100%;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.metric strong{font:35px/1.3 Georgia,serif;color:var(--chapter,var(--blue))}.metric span{display:block;font-size:12px;color:var(--muted);margin-top:5px}.evidence{margin-top:20px;width:100%}.evidence h3{font-size:17px}.evidence p{font-size:16px;line-height:1.9;margin-top:5px;color:#52626b}.lesson{border-top:1px dashed #a7b7b7;margin-top:auto;padding-top:16px;width:100%}.lesson small{font-size:11px;letter-spacing:2px;color:var(--muted)}.lesson p{font:25px/1.8 var(--hand);color:var(--chapter,var(--blue));margin-top:5px;transform:rotate(-1deg)}.page.right>.lesson{margin-top:28px}.note-paper{background:#e3e9de9c;border-left:2px solid #a1b29d;padding:13px 22px;margin-top:23px;width:100%;color:#425a50}.note-paper p{font:24px/1.6 var(--hand)}.language-line{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.language-line span{padding:3px 10px;border:1px solid #bfcac9;font-size:13px}.research-flow{padding-left:20px;border-left:1px solid #aabbc6;margin-top:25px}.research-flow p{font-size:16px;padding:8px 0}.research-flow span{font:12px Consolas,monospace;margin-right:12px;color:#74818a}.publication{font-size:14px;color:var(--muted);margin-top:23px;line-height:1.9}.report-slip{width:100%;border-left:3px solid var(--green);background:#e6ece799;display:flex;align-items:center;gap:23px;margin-top:23px;padding:16px 21px}.report-slip strong{font:38px Georgia,serif;color:var(--green)}.report-slip p{font-size:16px}.offer-title{font:52px/1.2 Georgia,serif;letter-spacing:-2px;margin-top:28px}.offer-subtitle{font:30px/1.6 var(--serif);margin-top:18px}.offer-ticket{border:1px solid #a9b6bf;margin-top:35px;padding:25px;background:#edf0eeaa;width:100%}.offer-ticket h3{font:32px/1.6 var(--hand);margin:18px 0}.ticket-line{display:flex;justify-content:space-between;gap:15px;border-top:1px dashed #acb9c0;padding-top:15px;font-size:12px}.offer-thought{font:26px/1.8 var(--hand);color:#597282;transform:rotate(-2deg);margin-top:28px}.placeholder-area{width:100%;border:1px dashed #abbcc4;min-height:260px;display:flex;align-items:center;justify-content:center;flex-direction:column;margin-top:28px}.paper-mark{font:42px/1.2 var(--hand);color:#9eaeb8}.placeholder-area strong{font:26px/1.8 var(--hand);margin-top:12px}.placeholder-area p{font-size:13px;color:var(--muted);margin-top:8px}.pending-list{font-size:16px;line-height:2.2;margin-top:25px;color:#61717b}.contact-heading{font-size:43px;line-height:1.6;margin-top:10px}.closing-copy{font-size:17px;line-height:2.2;margin-top:26px;color:#54656d}.closing-stamps{display:flex;gap:20px;margin-top:32px}.closing-stamps .stamp{width:116px;height:116px;border-radius:50%;font-size:19px}.closing-stamps .stamp:nth-child(2){transform:rotate(8deg)}.signature{font:35px/1.7 var(--hand);align-self:flex-end;margin-top:27px;transform:rotate(-5deg)}.contact-details{margin-top:33px}.contact-details div{margin-bottom:27px}.contact-details dt{font-size:12px;color:var(--muted);letter-spacing:2px}.contact-details dd{margin:6px 0 0;font-size:22px}.contact-details a{text-decoration:none;border-bottom:1px solid #a5b2ba}.contact-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.action{font-size:14px;padding:10px 18px;background:var(--ink);color:#f4f6f1;text-decoration:none;border:1px solid var(--ink)}.action.secondary{background:none;color:var(--ink)}.contact-status{font-size:13px;min-height:24px;margin-top:14px;color:#456854}.back-link{background:none;padding:0;border-bottom:1px solid #9aabb4;font-size:13px;margin-top:28px}
