:root {
  --folder:#b49a70;
  --paper:#f4e9d3;
  --sheet:#fff9eb;
  --ink:#231f1a;
  --stamp:#ad2427;
  --muted:#6b5c49;
  --rule:#c4b69b;
  --metal:#b5b4aa;
  --grain:url('/paper-grain.svg');
  --serif:"Noto Serif CJK SC","Noto Serif CJK JP","Songti SC","Source Han Serif SC",Georgia,serif;
  --sans:"Noto Sans CJK SC","Noto Sans CJK JP",system-ui,sans-serif;
  color:var(--ink);
  background:var(--folder);
  font:16px/1.6 var(--sans);
}
* { box-sizing:border-box }
body { margin:0 }
button,input,textarea,select { font:inherit;color:inherit }
button,a,input,textarea,select { -webkit-tap-highlight-color:transparent }
a { color:inherit;text-underline-offset:4px }
button,a,select { touch-action:manipulation }
button,.button { background:var(--stamp);color:var(--sheet);border:0;border-radius:0;min-height:48px;padding:13px 20px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-weight:700;transition:transform .18s,background .18s }
button:hover,.button:hover { background:var(--ink) }
button:active,.button:active { transform:translateY(2px) }
button:disabled { opacity:.6;cursor:wait }
a:hover { color:var(--stamp) }
:focus-visible { outline:3px solid var(--stamp);outline-offset:4px }
[hidden] { display:none!important }
::selection { background:var(--stamp);color:var(--sheet) }
.navigation { max-width:1248px;margin:auto;padding:24px 32px 34px;display:flex;justify-content:space-between;align-items:center;gap:16px }
#brand { display:flex;gap:10px;align-items:center;font-size:16px;line-height:1.08;font-weight:750;text-decoration:none }
.brand-mark { font-family:Georgia,serif;font-size:24px;letter-spacing:-2px;background:var(--ink);color:var(--paper);width:46px;height:46px;display:grid;place-items:center;padding-right:3px;transform:rotate(-5deg) }
.language-control { display:flex;align-items:center;gap:5px;min-height:44px }
.language-control select { border:0;background:transparent;max-width:134px;min-height:44px;cursor:pointer }
main { max-width:1184px;margin:0 auto;padding:18px 0 0 }
.home-layout { display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:start }
.paper { background-color:var(--paper);background-image:var(--grain),radial-gradient(ellipse at 40% 30%,rgb(255 255 255 / .16),transparent 55%,rgb(107 92 73 / .18)) }
.admissions { padding:52px 40px 34px;position:relative;border-left:12px solid var(--ink);box-shadow:1px 2px 2px rgb(35 31 26 / .12),3px 7px 12px rgb(35 31 26 / .12),inset 0 1px rgb(255 255 255 / .45) }
.folder-tab { position:absolute;left:-12px;top:-24px;height:25px;padding:3px 20px;background:var(--ink);color:var(--paper);font:700 13px/20px var(--sans);border-radius:5px 12px 0 0 }
.paper-clip { position:absolute;right:27px;top:-19px;width:76px;height:34px;background:var(--ink);border-radius:4px 4px 1px 1px;border-bottom:6px solid var(--metal) }
.paper-clip::before { content:"";position:absolute;top:-17px;left:22px;width:32px;height:26px;border:4px solid var(--metal);border-radius:10px 10px 3px 3px }
.admissions h1 { font-family:var(--serif);font-size:clamp(42px,4.4vw,58px);font-weight:900;line-height:1.12;letter-spacing:-.045em;margin:0 0 22px;max-width:100%;white-space:pre-line }
.intro { max-width:38ch;font-size:18px;line-height:1.75;margin:0 0 16px }
.jump { display:inline-block;margin-bottom:24px;font-weight:700;min-height:44px;padding:8px 0;color:var(--stamp) }
form { border-top:3px solid var(--ink);padding-top:22px }
form label { display:block;font-weight:700;margin-bottom:5px }
input,textarea { width:100%;background:var(--sheet);border:0;border-bottom:2px solid var(--ink);border-radius:0;padding:11px 10px;outline-offset:3px;min-height:48px;resize:vertical }
input::placeholder,textarea::placeholder { color:var(--muted);opacity:1 }
input { margin-bottom:25px }
textarea { margin-bottom:22px;line-height:1.8 }
.measurements { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px }
.measurements label { font-size:14px;min-height:44px;display:flex;align-items:end }
.measurements input { font-family:var(--serif);font-size:34px;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:0 }
.live-measure { margin:24px 0 28px;padding:14px 0 16px;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink);display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:center }
.live-measure output { font-family:var(--serif);font-size:58px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.04em }
.live-measure span { font-size:16px;line-height:1.45;max-width:20ch }
.live-measure small { grid-column:1/-1;margin-top:10px;color:var(--muted);font-size:13px }
.privacy,.consent { font-size:13px;line-height:1.8;color:var(--muted) }
.privacy { margin:0 0 16px;padding-left:12px;border-left:3px solid var(--stamp) }
.consent { margin:12px 0 8px }
#turnstile { min-height:70px;margin:12px 0 }
#submit { width:100%;min-height:56px;font-size:18px }
.text-button { background:none;border:0;color:var(--ink);font-size:16px;font-weight:500;padding:12px 0;min-height:44px;text-decoration:underline }
.text-button:hover { background:none;color:var(--stamp) }
.error { color:var(--stamp);font-size:16px }
.error:empty { display:none }
.specimen { padding-top:0 }
.specimen-caption { font-size:14px;margin:0 0 16px;padding:0 4px;font-weight:600 }
.report-sheet { padding:32px 32px 28px 44px;position:relative;isolation:isolate;overflow:visible;border-bottom:12px solid var(--ink);box-shadow:2px 3px 2px rgb(35 31 26 / .3),5px 15px 18px rgb(35 31 26 / .26) }
.report-backing { position:absolute;pointer-events:none;inset:6px -5px -20px 5px;z-index:-2;background:var(--paper) var(--grain);border:1px solid var(--muted);clip-path:polygon(0 0,100% 4px,calc(100% - 3px) 100%,2px calc(100% - 4px));box-shadow:inset 0 -5px rgb(107 92 73 / .13) }
.report-punches { position:absolute;inset:0;pointer-events:none }
.report-punches::before,.report-punches::after { content:"";box-sizing:border-box;position:absolute;left:10px;width:16px;height:16px;background:var(--folder);border:2px solid var(--rule);border-radius:50%;box-shadow:inset 2px 2px 3px rgb(35 31 26 / .6),0 1px 1px rgb(255 255 255 / .9) }
.report-punches::before { top:calc(25% - 8px) }
.report-punches::after { top:calc(75% - 8px) }
.report-sheet::after { content:"";position:absolute;pointer-events:none;inset:0 0 -8px;z-index:-1;background-color:var(--sheet);background-image:var(--grain),radial-gradient(ellipse at 40% 30%,rgb(255 255 255 / .15),transparent 60%,rgb(107 92 73 / .2));clip-path:polygon(0 0,100% 0,calc(100% - 2px) 24%,100% 48%,calc(100% - 1px) 74%,100% calc(100% - 8px),97% calc(100% - 1px),93% calc(100% - 7px),89% 100%,84% calc(100% - 6px),79% calc(100% - 1px),74% calc(100% - 7px),68% 100%,62% calc(100% - 6px),56% calc(100% - 1px),50% calc(100% - 8px),44% calc(100% - 1px),38% calc(100% - 6px),32% 100%,26% calc(100% - 7px),20% calc(100% - 1px),14% calc(100% - 6px),8% 100%,3% calc(100% - 6px),0 calc(100% - 1px),2px 72%,0 49%,2px 23%) }
.report-brand { display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13px;border-bottom:3px solid var(--ink);padding-bottom:12px }
.report-brand strong { font-size:15px }
.report-brand>span { font-family:"Courier New",monospace;white-space:nowrap }
.report-type { font-size:14px;margin:12px 0 0;color:var(--muted) }
.report-sheet .report-heading { font-family:var(--serif);font-size:34px;line-height:1.35;font-weight:800;margin:260px 0 28px;letter-spacing:-.03em;overflow-wrap:anywhere;position:relative;z-index:1 }
.report-stamp { position:absolute;pointer-events:none;z-index:2 }
.report-measure { display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:22px;row-gap:0;align-items:center;padding:18px 0;margin:0 0 24px;border-top:3px solid var(--ink);border-bottom:3px solid var(--ink) }
.report-measure strong { font-family:var(--serif);font-size:70px;line-height:1;font-weight:900;letter-spacing:-.06em;font-variant-numeric:tabular-nums }
.report-measure span { font-size:14px;display:block }
.report-measure .measure-detail { margin-top:7px;color:var(--muted) }
.report-measure .report-tag { grid-column:1/-1;justify-self:start;max-width:100%;position:relative;isolation:isolate;margin-top:20px;padding:8px 12px 8px 44px;background:var(--paper) var(--grain);border:1px solid var(--rule);border-bottom-width:6px;border-radius:14px 2px 3px 14px;box-shadow:2px 3px 1px rgb(35 31 26 / .32),3px 7px 7px rgb(35 31 26 / .22);transform:rotate(-2deg);transform-origin:0 50%;overflow-wrap:anywhere }
.report-tag::before { content:"";box-sizing:border-box;position:absolute;left:9px;top:calc(50% - 7px);width:14px;height:14px;border:3px solid var(--metal);border-radius:50%;background:var(--folder);box-shadow:0 0 0 1px var(--muted),inset 1px 1px 1px var(--ink),1px 1px 0 rgb(255 255 255 / .8) }
.report-tag::after { content:"";position:absolute;left:0;top:-8px;width:44px;height:calc(50% + 8px);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 34' preserveAspectRatio='none'%3E%3Cpath d='M33 5C3 -4 -2 22 16 34C2 27 13 10 33 5' fill='none' stroke='%236b5c49' stroke-width='2'/%3E%3C/svg%3E") 0 0/100% 100% no-repeat;pointer-events:none }
.report-tag .tag-clip { position:absolute;left:29px;top:-8px;width:8px;height:20px;border:2px solid var(--metal);border-radius:4px;box-shadow:1px 1px 0 var(--muted);z-index:1 }
.report-section { margin:0 0 26px }
.report-section h2 { font-size:13px;font-weight:600;margin:0 0 7px;color:var(--muted) }
.report-section p { font-size:16px;line-height:1.8;margin:0;white-space:pre-line;overflow-wrap:anywhere }
.report-section.cause p { font-family:var(--serif);font-size:28px;font-weight:800;line-height:1.45 }
.report-section.evidence { padding:16px 0;border-top:2px solid var(--rule);border-bottom:2px solid var(--rule) }
.report-section.email { padding:24px 20px 20px;position:relative;isolation:isolate;transform:rotate(-.8deg);transform-origin:50% 8px }
.email-paper { position:absolute;inset:0;pointer-events:none;z-index:-1;filter:drop-shadow(1px 2px 1px rgb(35 31 26 / .28)) drop-shadow(3px 7px 5px rgb(35 31 26 / .22)) }
.email-paper::before { content:"";position:absolute;inset:0;background-color:var(--paper);background-image:var(--grain),linear-gradient(174deg,rgb(255 255 255 / .24),transparent 25%,transparent 80%,rgb(107 92 73 / .16));clip-path:polygon(0 1px,24% 0,48% 1px,73% 0,100% 1px,calc(100% - 1px) 43%,100% 72%,calc(100% - 1px) calc(100% - 2px),78% 100%,54% calc(100% - 1px),31% 100%,1px calc(100% - 1px),0 62%,1px 27%) }
.report-section.email::before,.report-section.email::after { content:"";position:absolute;pointer-events:none;top:-13px;width:83px;height:32px;background-color:rgb(196 182 155 / .68);background-image:var(--grain),linear-gradient(176deg,rgb(255 255 255 / .6),transparent 25%,rgb(107 92 73 / .12));filter:drop-shadow(0 2px 1px rgb(35 31 26 / .25));clip-path:polygon(3% 0,97% 1%,100% 12%,95% 25%,100% 38%,96% 51%,100% 64%,95% 77%,99% 98%,2% 100%,5% 87%,0 74%,5% 61%,0 48%,5% 35%,0 22%,4% 11%) }
.report-section.email::before { left:12px;transform:rotate(-5deg) }
.report-section.email::after { right:12px;transform:rotate(5deg) }
.report-section.email p { position:relative }
.report-section.email p::after { content:"";position:absolute;pointer-events:none;right:-20px;bottom:-20px;width:16px;height:16px;background:linear-gradient(135deg,transparent 46%,rgb(35 31 26 / .12) 49%,var(--paper) 55%,rgb(255 255 255 / .45));border-radius:0 0 6px 0 }
.report-section.email h2 { color:var(--ink);font-weight:700 }
.report-section.prevention { border-left:4px solid var(--stamp);padding-left:16px }
.report-section.prevention h2 { color:var(--stamp) }
.report-section.prevention p { font-weight:650 }
.report-foot { margin-top:32px;font-size:13px;color:var(--muted);padding-top:14px;border-top:3px solid var(--ink) }
.report-domain { font-size:20px!important;font-weight:800;letter-spacing:-.04em;color:var(--ink);margin:16px 0 12px!important }
.report-foot p { margin:8px 0 }
.report-classification { font-size:13px;color:var(--muted);margin:0 0 10px;overflow-wrap:anywhere }
#result { max-width:780px;margin:auto }
#result .report-sheet { padding:36px 48px 32px 60px }
#result .report-sheet .report-heading { font-size:44px;margin-top:310px }
#result .report-measure strong { font-size:94px }
.report-actions { display:flex;gap:12px;flex-wrap:wrap;padding:24px 0 }
.report-actions button:first-child,.report-actions button:nth-child(2) { flex:1 }
.report-actions button:nth-child(2) { background:var(--ink) }
.report-actions .text-button { flex-basis:100%;text-align:center }
.status-sheet { max-width:640px;margin:30px auto;padding:42px 40px;border-bottom:12px solid var(--ink) }
.status-sheet h1 { font-family:var(--serif);font-size:42px;line-height:1.2;letter-spacing:-.035em }
.status-sheet p { font-size:18px;line-height:1.8 }
.closed-mark { display:inline-block;font-family:Georgia,serif;font-size:56px;font-weight:900;color:var(--stamp);border:5px solid var(--stamp);padding:0 16px;transform:rotate(-9deg);margin:20px 0 40px;opacity:.8 }
.status-sheet .button { margin-top:20px }
#notice { max-width:780px;margin:16px auto;min-height:24px;font-size:16px }
footer { max-width:1184px;margin:32px auto;padding:0 0 32px;color:var(--ink);font-size:13px;line-height:1.8 }
footer>div { display:flex;gap:24px }
footer a { min-height:44px;display:inline-flex;align-items:center }
@media(min-width:1000px) {
  .specimen { position:sticky;top:24px }
}
@media(max-width:800px) {
  .navigation { padding:16px 18px 32px }
  main { padding:14px 12px 0 }
  .home-layout { display:block }
  .admissions { padding:38px 20px 24px;border-left-width:6px }
  .folder-tab { left:-6px;padding:3px 12px }
  .paper-clip { right:19px;width:64px }
  .paper-clip::before { left:17px }
  .admissions h1 { font-size:43px;line-height:1.17;margin-bottom:20px;letter-spacing:-.045em }
  :lang(zh) .admissions h1,:lang(ja) .admissions h1,:lang(ko) .admissions h1 { font-size:46px }
  .intro { font-size:16px;line-height:1.8 }
  .jump { margin-bottom:14px;font-size:16px }
  form { padding-top:20px }
  form label { font-size:16px }
  .measurements { gap:20px }
  .measurements label { font-size:14px }
  .live-measure { padding:16px 0;column-gap:14px }
  .live-measure output { font-size:54px }
  .specimen { margin-top:34px }
  .specimen-caption { padding-left:8px }
  .report-sheet { padding:24px 20px 24px 32px }
  .report-sheet .report-heading { font-size:28px;line-height:1.4;margin:140px 0 24px }
  .report-brand { font-size:12px;gap:8px;padding-bottom:10px }
  .report-brand strong { font-size:14px }
  .report-type { font-size:13px }
  .report-measure { padding:16px 0;column-gap:16px;row-gap:0;grid-template-columns:minmax(0,1fr) }
  .report-measure>div { margin-top:12px }
  .report-measure strong { font-size:65px }
  .report-measure span { font-size:13px }
  .report-section p { line-height:1.85 }
  .report-section.cause p { font-size:27px;line-height:1.5 }
  .report-section.email { padding:22px 16px 18px }
  .report-section.email p::after { right:-16px;bottom:-18px }
  .report-domain { font-size:20px!important }
  #result .report-sheet { padding:24px 20px 24px 32px }
  #result .report-sheet .report-heading { font-size:31px;margin-top:140px }
  #result .report-measure strong { font-size:72px }
  .report-actions { gap:10px }
  .report-actions button { font-size:14px;padding:12px }
  .status-sheet { padding:32px 24px;margin:0 auto }
  .status-sheet h1 { font-size:36px }
  .closed-mark { font-size:48px;padding:0 12px }
  footer { padding:0 24px 24px;margin:24px auto }
  #notice { padding:0 8px }
}
@media(prefers-reduced-motion:no-preference) {
  .report-sheet.fresh { animation:file-in .36s ease-out }
  input:focus,textarea:focus { transition:background .18s;background:var(--paper) }
  @keyframes file-in { from { transform:translateY(12px);opacity:.3 } to { transform:translateY(0);opacity:1 } }
}
