/* A sunlit campus story: parchment, sky blue, apricot and botanical green. */
:root{color-scheme:light;--mint:#26786d;--muted:#536d73;--line:#bfd4ce;color:#203d49;background:#e4f2ef}
#world{background:linear-gradient(#cce8f4,#fff2d6)}
.brand,.language,#my-pass,#restart{background:#fffdf3ed;color:#244b59;border:1px solid #ccdcd4;box-shadow:0 3px 16px #36564c12}
.brand small{color:#526d70}.has-pass #my-pass::before{color:#26866c}
.language button{color:#365868;background:transparent}.language button[aria-pressed=true]{background:#d5eee3;color:#174e47}
body.start-screen{background:radial-gradient(ellipse at 70% 20%,#fffdf3,transparent 66%),linear-gradient(145deg,#fff5e6,#dcefe4);min-height:100dvh}
#start-panel{left:50%;width:min(440px,calc(100% - 28px));top:50%;transform:translate(-50%,-45%);padding:22px;background:#fffaf0;border:1px solid #d5e4d8;border-radius:24px;box-shadow:0 20px 60px #4b756222;scrollbar-color:#abcfc1 transparent}
body.arrival-reveal::after{content:'';position:fixed;inset:0;z-index:10;pointer-events:none;background:linear-gradient(110deg,#fff9ea,#e0f3e8);animation:arrival-light 420ms ease-out both}
@keyframes arrival-light{to{opacity:0}}
.arrival-kicker{display:block;font-size:10px;letter-spacing:.22em;font-weight:700;color:#7c6550}
#start-panel h1{font-size:34px;color:#214957;line-height:1.3;margin:10px 0}
#start-panel .arrival-copy p{font-size:14px;line-height:1.6;color:#506f73;margin-bottom:14px}
.name-entry{display:grid;gap:6px;padding:0 8px;color:#244b55}.name-entry>span{font-size:13px;font-weight:700}
#visitor-name{min-height:48px;width:100%;border:1px solid #a8c9bf;border-radius:12px;background:#fffef8;padding:10px 14px;font-family:inherit;font-size:17px;font-weight:600;color:#244b55;outline-offset:3px;box-shadow:0 3px 10px #719a8410}
#visitor-name:focus{outline:2px solid #75bda6;border-color:#478f79}.name-entry small{font-size:11px;color:#698078}
.pass-printer{padding:15px 5px 8px}.printer-slot{display:none}
.visitor-card{padding:19px;border:1px solid #d5dfcd;border-radius:18px;background:linear-gradient(130deg,#fffdf3 20%,#e6f5ed 66%,#d9ecf4);color:#244957;box-shadow:0 12px 28px #526a4120;transform:rotate(-2deg)}
.visitor-card::before{background:radial-gradient(circle at 85% 16%,#ffda8c99 0 34px,transparent 35px),linear-gradient(150deg,transparent 60%,#c4dfbd55 61%,transparent 78%);opacity:1}
.card-top{font-size:10px;letter-spacing:.06em}.card-top small{color:#6d837a;font-size:9px!important}.card-top img{width:30px;height:30px}
.pass-name{display:block;font-size:28px;line-height:1.2;margin-top:20px;letter-spacing:-.025em;overflow-wrap:anywhere;max-width:100%;color:#244957}
.card-art{height:46px;margin:6px 0 12px}.card-art .pass-field{font-size:14px!important;top:0;color:#357e6c;font-weight:650}.card-art .pass-building{font-size:11px!important;bottom:0;color:#62817f}
.card-art i{border:1px solid #79ac9777;border-radius:50%;width:100px;height:32px;right:-20px;top:0;transform:rotate(-20deg)}
.card-art i:nth-child(2){width:80px;height:25px;right:-5px;top:12px;transform:rotate(-20deg)}.card-art i:nth-child(3){width:65px;height:20px;right:8px;top:22px;transform:rotate(-20deg)}
.card-motto{margin:4px 0 12px;padding-top:8px;border-top:1px solid #c9dbcf;color:#315d5a;overflow-wrap:anywhere;font-size:12px;line-height:1.5}
.card-motto p,#start-panel .card-motto p{margin:3px 0 0;color:#506f73;font-size:11px;line-height:1.5}
.card-bottom{border-top:1px dashed #aec5b5;padding-top:10px}.card-bottom strong{font-size:11px}.card-bottom small{font-size:10px;color:#7b9189;margin-top:4px;letter-spacing:.06em}
.pass-stamp,.has-pass .pass-stamp{background:#ffedc4;border:1px solid #d4bb82;color:#7c632b;font-size:10px;border-radius:20px;padding:6px 9px}
.optional-interest{border:0;margin:7px 5px}.optional-interest summary{display:block;padding:8px 3px;font-size:12px;color:#386b64;text-decoration:underline;text-underline-offset:4px}
.optional-interest[open]{background:transparent;border:0}#pass-interests{margin:0 0 5px}#pass-interests legend{font-size:12px}
.pass-interest-options label{background:#fffff5;border:1px solid #bbcec1;color:#365b5c;font-size:12px;min-height:44px}.pass-interest-options label:has(:checked){background:#d1eadb;border-color:#6cac91}
#start-panel #interest-note{color:#607d75;font-size:11px}
#start-panel>#issue-pass{background:#287c69;color:white;border-radius:12px;font-size:15px;padding:14px;margin:6px 0 0;min-height:48px;box-shadow:0 5px 16px #3b8b6e25}
#start-panel>#issue-pass:not(:disabled):hover{background:#1d6858}#start-panel #pass-status{color:#607d75!important;font-size:11px!important;line-height:1.5;margin-top:8px!important}
#start-panel .pass-disclaimer{color:#698078;font-size:10px;margin:6px 0}
#pass-dialog{background:#fffaf0;color:#244957;border:1px solid #c8d8c9;border-radius:20px}#pass-dialog h2{font-size:21px}#pass-dialog .pass-name{font-size:28px}
#pass-create,#pass-visit{background:#e1f0e7;color:#245947;border:1px solid #b4d1c0}#pass-dialog>p{color:#628078}
.directory,#selected,#journey,dialog{background:#fffdf4f2;color:#244957;border-color:#c6d9cf;box-shadow:0 8px 24px #52675115;backdrop-filter:blur(12px)}
#current-location{color:#2b7164}#journey button{background:#e0eee2;color:#315f58;border-color:#b8cfc1}#journey #journey-toggle{background:transparent}
.journey-line #journey-toggle{flex:0 0 auto;white-space:nowrap;padding:6px 8px}.journey-line #current-location{min-width:0;line-height:1.45}
dialog .close{background:#e1eee3;color:#244957}.interest-options button,.completion button,.data-answer button,.project-stage select,.project-stage button,.options button{background:#e1efe5;color:#244957;border:1px solid #a9caba}
.completion,.project-goal{background:#e7f2e7;color:#294f4b;border-color:#aacdba}.completion a{color:#236e5d}.project-readout{color:#286e60}.project-scene{color:#edf9f2}
.venue b,.condition b{color:#3c7667}#interior-hud{color:#edf9f8}#route-status{color:#f1f8ef}#stop-tour{background:#fff4dc;color:#65522d}
.directory small,.directory .course-ko,.detail [lang=ko],#journey p{color:#668077}.building-nav button,.dorm-picker select{background:#f0f6ed;color:#335e61;border-color:#c4d6ca}
#sheet-toggle{color:#2e7564}
#labels .building-label {
  --map-accent: #577566;
  display: grid;
  grid-template-columns: 10px auto;
  grid-template-rows: auto auto;
  column-gap: 6px;
  align-content: center;
  isolation: isolate;
  padding: 0 9px;
  border: 0;
  border-radius: 14px;
  background: none;
  box-shadow: none;
  color: #203830;
  text-align: left;
  font-weight: 500;
  line-height: 14px;
}
#labels .building-label[hidden] { display: none; }
#labels .building-label[data-building-id="yulgok"] { --map-accent: #926235; }
#labels .building-label[data-building-id="library"] { --map-accent: #31836e; }
#labels .building-label[data-building-id="paldal"] { --map-accent: #426b97; }
#labels .building-label[data-building-id="woncheon"] { --map-accent: #407980; }
#labels .building-label[data-building-id="dasan"] { --map-accent: #7b6195; }
#labels .building-label[data-building-id="yeonam"] { --map-accent: #596f9a; }
#labels .building-label::before {
  content: "";
  position: absolute;
  inset: 4px 0;
  z-index: -1;
  border: 1px solid #dce3da;
  border-radius: 13px;
  background: #fcfdf8;
  box-shadow: 0 2px 4px #253f2b14;
}
#labels .building-label::after {
  content: "";
  display: block;
  position: static;
  grid-area: 1 / 1 / 3;
  align-self: center;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--map-accent);
}
.map-label-name {
  grid-area: 1 / 2;
  font-size: 13px;
  letter-spacing: .025em;
  line-height: 16px;
}
:lang(ko) .map-label-name, :lang(ko) .map-label-detail {
  font-family: "NanumSquareRound", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}
:lang(zh-Hans) .map-label-name, :lang(zh-Hans) .map-label-detail {
  font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
}
.map-label-detail {
  grid-area: 2 / 2;
  color: #546760;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .02em;
  line-height: 14px;
}
#labels .building-label:hover::before { border-color: var(--map-accent); }
#labels .building-label.active { color: #fcfdf8; }
#labels .building-label.active::before { background: #204639; border-color: #204639; }
#labels .building-label.active::after { background: #cde6cc; }
#labels .building-label.active .map-label-detail { color: #daeadb; }
#labels .building-label:focus-visible {
  outline: 2px solid #294e40;
  outline-offset: 2px;
}
#label-lines line { stroke: #486557; stroke-width: 1; opacity: .46; }
.course-icon{background:#dfefe6;color:#367f70}.arrow{color:#4f8575}
.map-tools button{background:#fffdf4ed;color:#3d6d66;border-color:#c5d8cd;border-radius:14px}#selected #enter-building{background:#2e806d;color:#fff}#detail-toggle{color:#4c8072;border-color:#bfd9ca}
footer>span,footer>a{background:#fffaf0e8;color:#536e69;border:1px solid #d1dfd0}
.interior-top>div{background:#173c4bc9;border-radius:10px;padding:8px 12px;color:#fff}.interior-top .room-name{color:#e6f6ef}
@media(max-width:700px){
 #start-panel{left:14px;right:14px;width:auto;top:80px;transform:none;max-height:calc(100dvh - 110px);padding:10px 12px 16px;border-radius:20px}
 #start-panel h1{font-size:25px;line-height:1.3;margin:7px 0}#start-panel .arrival-copy p{font-size:12px;margin-bottom:10px}.arrival-kicker{font-size:8px;margin-top:6px}
 .name-entry{gap:4px}.name-entry>span{font-size:12px}#visitor-name{font-size:16px;min-height:44px;padding:8px 12px}.name-entry small{font-size:10px}
 .visitor-card{padding:14px 16px}.pass-name{font-size:24px;margin-top:14px}.card-art{height:38px;margin:5px 0 8px}.card-top small{font-size:8px!important}.card-bottom strong{font-size:10px}
 .pass-printer{padding-top:10px}.optional-interest{margin:0 5px}.optional-interest summary{font-size:11px;padding:7px 3px}#start-panel>#issue-pass{font-size:14px;padding:12px;min-height:46px}
 .header-right #restart:not([hidden]){display:inline-block}
 .interior-top>div{display:inline-block;padding:6px 10px;max-width:100%}
}
@media(prefers-reduced-motion:reduce){body.arrival-reveal::after{display:none}.visitor-card{transform:none}.issuing-pass .visitor-card,.issuing-pass .pass-printer::after{animation:none}}

/* Clear the view during the approach; the building chooser can interrupt it. */
.pioneer-viewing #labels,.arrival-flight #journey,.arrival-flight footer,
.pioneer-viewing .directory .cards,.pioneer-viewing .directory .building-nav{display:none}
.pioneer-viewing .directory{top:auto;bottom:54px;width:auto;max-width:320px}
.pioneer-viewing .directory .panel-heading{display:none}
.pioneer-viewing .directory .dorm-picker{display:flex}
@media(max-width:700px){.pioneer-viewing .directory{bottom:12px;right:auto;max-width:235px}}

#campus-music{min-width:44px;min-height:44px;padding:5px 8px;border:1px solid #ccdcd4;border-radius:20px;background:#fffdf3;color:#244b59;font-size:11px;white-space:nowrap}
#campus-music[aria-pressed="true"]{background:#d5eee3;color:#174e47}
