/* Artstrology, ported from the original 2012 stylesheet.
   810px fixed-width paper-card aesthetic, Archer body, magenta selection,
   distinctive per-axis color palette. */

/* Meyer reset */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video {
  margin:0; padding:0; border:0; font-size:100%; font:inherit; vertical-align:baseline;
}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section { display:block; }
body { line-height:1; }
ol,ul { list-style:none; }
blockquote,q { quotes:none; }
blockquote:before,blockquote:after,q:before,q:after { content:''; content:none; }
table { border-collapse:collapse; border-spacing:0; }

/* Root */
html {
  font-family: 'Archer', georgia, serif;
  font-weight: 500;
  font-style: normal;
  color: #4B4B4B;
  background-color: #EBEBEB;
  -webkit-text-size-adjust: none;
  overflow-x: hidden;
}
::selection      { background-color: #F42498; color: white; }
::-moz-selection { background-color: #F42498; color: white; }

i, em { font-style: italic; }
strong, b { font-weight: 700; }

/* Page chrome — 810px paper card with vignette top/middle/bottom */
#page {
  width: 810px;
  background: url(../assets/img/ui/vignette_middle.jpg) repeat-y;
  border: 8px solid #fff;
  position: relative;
  margin: 30px auto;
  box-shadow: 0 0 20px #DDD;
}
#wrap    { background: url(../assets/img/ui/vignette_top.jpg) no-repeat top; }
#content { min-height: 600px; background: url(../assets/img/ui/vignette_bottom.jpg) no-repeat bottom; padding-bottom: 20px; }
#main    { position: relative; margin: 0 24px; padding: 20px 0; min-height: 700px; }

/* Header */
header {
  margin: 0 24px;
  width: 762px;
  height: 70px;
  position: relative;
  padding-top: 10px;
}
header h1 {
  height: 65px;
  line-height: 65px;
  padding-right: 51px;
  position: absolute;
  right: 0;
  top: 15px;
  text-indent: -999em;
  background: url(../assets/img/ui/artstrology_icon.png) no-repeat right center;
  background-size: 41px 41px;
}
header h2 {
  position: absolute;
  left: 0;
  top: 10px;
  text-indent: -999em;
  height: 70px;
  width: 153px;
  background: url(../assets/img/ui/logo_pin_horiz.png) no-repeat left center;
}
header hr {
  width: 100%;
  border: 0;
  height: 1px;
  background-image: linear-gradient(to right, rgb(223,223,223) 15%, rgb(201,201,201) 50%, rgb(223,223,223) 85%);
  margin: 0;
  padding: 0;
  position: absolute;
  bottom: 0;
}

/* Screen toggling — driven by body class */
.screen[hidden] { display: none !important; }
.welcome #quiz-screen, .welcome #result-screen,
.quiz #welcome-screen, .quiz #result-screen,
.result #welcome-screen, .result #quiz-screen { display: none; }

/* Welcome screen */
.welcome #page { text-align: center; }
#logo {
  height: 150px;
  text-indent: -999em;
  background: url(../assets/img/ui/logo_pin.png) no-repeat center bottom;
  background-size: contain;
  margin-bottom: 20px;
}
.welcome h1.display {
  font-size: 125px;
  font-family: 'Archer', georgia, serif;
  font-weight: 200;
  letter-spacing: -1px;
  height: 280px;
  line-height: 1;
  padding-top: 40px;
  background: url(../assets/img/ui/artstrology_icon.png) no-repeat center bottom;
  background-size: 60px 60px;
}
.welcome h3 {
  font-size: 28px;
  font-style: italic;
  font-weight: 600;
  padding: 30px 100px 10px;
  line-height: 1.2;
}
.welcome p {
  font-size: 18px;
  line-height: 28px;
  padding: 0 100px;
}
.welcome .button {
  padding-top: 30px;
  padding-bottom: 30px;
}
.welcome .fineprint {
  font-size: 13px;
  font-style: italic;
  line-height: 20px;
  padding-bottom: 30px;
  color: #888;
}

/* Button */
.button a {
  color: #222;
  text-decoration: none;
  border: 2px solid white;
  border-radius: 8px;
  padding: 8px 22px;
  background-color: #E3E5E4;
  white-space: nowrap;
  font-size: 24px;
  line-height: 2;
  display: inline-block;
  transition: background-color .15s ease;
}
.button a:hover { background-color: #DADCDB; }

/* Quiz screen */
.quiz #main { padding-top: 10px; }
#sidebar-frame { float: left; width: 222px; }
#sidebar {
  background: #FEFEFE;
  border: 1px solid #E5E5E6;
  border-radius: 8px;
  width: 220px;
  min-height: 470px;
  text-align: center;
  padding-top: 14px;
}
#sidebar .label {
  color: #666;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 3px;
  margin-top: 16px;
  margin-bottom: 8px;
}
#sidebar #auragram {
  position: relative;
  height: 202px;
  width: 202px;
  margin: 0 auto;
}
#sidebar #auragram .circle {
  background-color: #CACACA;
  opacity: .5;
  width: 102px;
  height: 102px;
  position: absolute;
  left: 50px;
  top: 50px;
  border-radius: 50%;
  transition: background-color .5s ease, opacity .5s ease;
  mix-blend-mode: multiply;
}
#sidebar #auragram .circle.axis1 { margin-top: -31px; z-index: 10; }
#sidebar #auragram .circle.axis2 { margin-left:  27px; z-index:  6; }
#sidebar #auragram .circle.axis3 { margin-top:   31px; z-index:  4; }
#sidebar #auragram .circle.axis4 { margin-left: -27px; z-index:  2; }

#sidebar #progress {
  margin-top: 12px;
  padding: 0 25px 14px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
#sidebar #progress .dot {
  width: 12px;
  height: 12px;
  background-color: #C3C3C3;
  border-radius: 50%;
  opacity: .6;
  transition: background-color .3s ease, opacity .3s ease;
}
/* answered dots get an inline-style background colored by the chosen axis */
#sidebar #progress .dot.answered { opacity: 1; }

/* Questions */
#questions {
  margin-left: 244px;
  width: 514px;
  text-align: center;
  position: relative;
}
#question-number {
  position: relative;
  height: 40px;
  margin-bottom: 16px;
}
#question-number .number-text {
  font-size: 18px;
  color: #fff;
  background: #999;
  display: inline-block;
  width: 38px;
  height: 38px;
  line-height: 38px;
  border-radius: 50%;
}
#question {
  font-size: 28px;
  line-height: 1.35;
  font-family: 'Archer', georgia, serif;
  padding: 0 20px;
  margin: 30px 0 24px;
}
#answers {
  font-size: 18px;
  line-height: 28px;
  margin-top: 16px;
}
#answers.text {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: center;
}
#answers.image,
#answers.colorpair {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}

.answer.colorpair {
  width: 220px;
  height: 165px;
  padding: 6px;
  background: #fff;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.answer.colorpair:hover {
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}
.answer.colorpair .color-circle {
  width: 86px;
  height: 86px;
  border-radius: 50%;
  display: block;
  flex-shrink: 0;
  opacity: .88;
}
.answer.colorpair .color-circle.right {
  margin-left: -26px;
  mix-blend-mode: multiply;
}
.answer {
  cursor: pointer;
  display: inline-block;
  text-align: center;
  border-radius: 8px;
  border: 2px solid white;
  background: #E3E5E4;
  padding: 10px 22px;
  text-decoration: none;
  color: #222;
  transition: background-color .15s ease, transform .15s ease;
  font-size: 22px;
  line-height: 1.25;
  max-width: 460px;
}
.answer:hover { background: #DADCDB; }
.answer:active { transform: scale(0.98); }
.answer.image {
  padding: 6px;
  width: 220px;
  background: #fff;
  border: 2px solid #fff;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.answer.image:hover {
  background: #fff;
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}
.answer.image img {
  display: block;
  width: 100%;
  height: 165px;
  object-fit: cover;
  border-radius: 2px;
}

/* Result screen */
.result #main { padding-top: 10px; padding-bottom: 40px; }
#type {
  text-align: center;
  margin-bottom: 30px;
}
#type h3 {
  font-size: 14px;
  font-style: italic;
  margin-bottom: 8px;
  color: #777;
}
#type h2 {
  font-size: 38px;
  font-weight: 600;
  margin: 6px 0 14px;
  letter-spacing: -.005em;
}
#type-portrait {
  display: block;
  margin: 0 auto 18px;
  width: 287px;
  height: 303px;
  object-fit: contain;
}
#type-axes {
  margin: 14px auto 8px;
}
#type-axes .circles {
  display: flex;
  justify-content: center;
  gap: 18px;
  margin-bottom: 10px;
}
#type-axes .circles .circle {
  width: 16px;
  height: 16px;
  border-radius: 50%;
}
#type-axes .labels {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  display: flex;
  justify-content: center;
  gap: 18px;
}
#type-axes .labels span { display: inline-block; width: 88px; text-align: center; }

#type-description {
  font-size: 16px;
  line-height: 26px;
  margin: 22px auto 6px;
  max-width: 540px;
  color: #3F3F3F;
  padding: 0 24px;
  text-align: center;
}
#type-think {
  font-size: 13px;
  line-height: 22px;
  margin: 4px auto 14px;
  color: #888;
  text-align: center;
}
#type-think em { font-style: italic; }
#type-think #type-think-text { font-style: italic; }
#type .description {
  font-size: 15px;
  font-style: italic;
  line-height: 22px;
  margin: 6px auto 0;
  max-width: 480px;
  color: #777;
}

/* Recommendations */
#recs-frame {
  text-align: left;
  margin: 30px 24px 0;
  padding-top: 24px;
  border-top: 1px solid #DDD;
}
#recs-frame .recs-header {
  text-align: center;
  font-size: 16px;
  font-style: italic;
  color: #777;
  margin-bottom: 4px;
}
#recs-frame #recs-type-name {
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 24px;
}
#recs-frame .hero { margin-bottom: 24px; overflow: hidden; }
#recs-frame .hero a { display: block; color: #444; text-decoration: none; }
#recs-frame .hero img {
  float: left;
  margin-right: 20px;
  width: 280px;
  height: auto;
  border-radius: 3px;
}
#recs-frame .hero h5 {
  font-size: 19px;
  font-weight: bold;
  line-height: 24px;
  margin-top: 8px;
}
#recs-frame .hero p { font-size: 14px; line-height: 20px; padding-left: 300px; }
#recs-frame .hero p:not(.series) { padding-top: 4px; }

#recs-frame .recs {
  clear: left;
  margin-top: 12px;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
#recs-frame .shows {
  flex: 1 1 380px;
  display: flex;
  gap: 20px;
}
#recs-frame .shows > a {
  flex: 1;
  text-decoration: none;
  color: #444;
}
#recs-frame .shows h5 {
  font-size: 15px;
  font-weight: bold;
  line-height: 20px;
  margin-top: 4px;
}
#recs-frame .shows p {
  font-size: 12px;
  line-height: 17px;
  margin-top: 4px;
}
#recs-frame .restaurants {
  flex: 1 1 200px;
}
#recs-frame .restaurants a { text-decoration: none; color: #444; display: block; }
#recs-frame .restaurants h5 {
  font-size: 16px;
  font-weight: bold;
  margin-top: 4px;
}
#recs-frame .restaurants h6 {
  font-style: italic;
  font-size: 12px;
  color: #777;
  margin-bottom: 2px;
}
#recs-frame .restaurants p { font-size: 12px; line-height: 17px; margin-top: 4px; }

#recs-frame p.series { font-style: italic; color: #666; font-size: 12px; }
#recs-frame strong.link {
  color: #1C75BC;
  font-weight: normal;
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  white-space: nowrap;
}
#recs-frame strong.date { font-weight: 700; color: #333; }
#recs-frame span.free {
  font-weight: normal;
  font-size: 72.5%;
  letter-spacing: 1px;
  color: #888;
}

/* Axis colors — Heart/Mind, Tradition/Innovation, Glamour/Subtlety, Excitement/Serenity */
.circle.hm.h { background-color: #FA3500; }
.circle.hm.m { background-color: #1C75BC; }
.circle.ti.t { background-color: #000000; }
.circle.ti.i { background-color: #EC008C; }
.circle.gs.g { background-color: #64EF30; }
.circle.gs.s { background-color: #9B8579; }
.circle.xn.x { background-color: #BB0044; }
.circle.xn.n { background-color: #385D72; }

.label-hm.h { color: #FA3500; }
.label-hm.m { color: #1C75BC; }
.label-ti.t { color: #000000; }
.label-ti.i { color: #EC008C; }
.label-gs.g { color: #4FB31E; }   /* darker than Glamour bg so the text is readable on white */
.label-gs.s { color: #9B8579; }
.label-xn.x { color: #BB0044; }
.label-xn.n { color: #385D72; }

/* Postscript */
#postscript {
  margin: 36px 24px 24px;
  padding: 22px 26px;
  background: #fff;
  border: 1px solid #E0E0E0;
  border-radius: 6px;
}
#postscript h4 {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: #999;
  margin-bottom: 12px;
  font-weight: 600;
}
#postscript p {
  font-size: 14px;
  line-height: 22px;
  margin-bottom: 10px;
  color: #555;
  font-style: italic;
}
#postscript p:last-child { margin-bottom: 0; }
#postscript strong {
  font-style: normal;
  font-weight: 700;
  color: #333;
  margin-right: 4px;
}

.result .button { text-align: center; padding-bottom: 30px; }
.result .button a { font-size: 18px; }
.result .result-actions {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
}

/* Narrow viewport — let it scroll horizontally rather than break the
   carefully-tuned 810px layout. */
@media (max-width: 850px) {
  body { overflow-x: auto; }
}
